マクロ定義 | 関数 | 変数

C:/PIC/OpenSSM/librtc.c

#include <p24FJ64GA002.h>
#include "table.h"
#include "librtc.h"
librtc.cのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define RTC_init_timer()   PR1 = cpu_fcy[ OSCTUN ] / 10000

関数

void __attribute__ ((interrupt, auto_psv))
void RTC_init (void)
unsigned int RTC_get_ticks (unsigned int start, unsigned int end)

変数

RTC_T rtc

マクロ定義

#define RTC_init_timer (   void  )     PR1 = cpu_fcy[ OSCTUN ] / 10000

librtc.c27 行で定義されています。

参照元 RTC_init().


関数

void __attribute__ ( (interrupt, auto_psv)   ) 

librtc.c39 行で定義されています。

参照先 RTC::day, RTC::hour, RTC::min, RTC::msec, RTC::sec, と RTC::tick.

{
    IFS0bits.T1IF = 0;

    /* tick is 0.1ms */
    rtc.tick++;
    if(rtc.tick % 10 != 0) return;

    /* ミリ秒 */
    rtc.msec++;
    rtc.msec = rtc.msec % 1000;
    if(rtc.msec != 0) return;

    /* 秒 */
#ifndef RTC_LOWMEM
    rtc.secmeter++;
#endif
    rtc.sec++;
    rtc.sec = rtc.sec % 60;
    if(rtc.sec != 0) return;

    /* 分 */
#ifndef RTC_LOWMEM
    rtc.minmeter++;
#endif
    rtc.min++;
    rtc.min = rtc.min % 60;
    if(rtc.min != 0) return;

    /* 時 */
#ifndef RTC_LOWMEM
    rtc.hourmeter++;
#endif
    rtc.hour++;
    rtc.hour = rtc.hour % 24;
    if(rtc.hour != 0) return;

    /* 日 */
    rtc.day++;

    return;
}

unsigned int RTC_get_ticks ( unsigned int  start,
unsigned int  end 
)

librtc.c114 行で定義されています。

参照元 __attribute__(), EEPROM_write(), main(), と SCREEN_main().

{
    if(start <= end){
        return(end - start);
    } else {
        return(end + (0xffff - start) + 1);
    }

    /* ここにきたらバグ */
    return(0);
}

呼出しグラフ:

void RTC_init ( void   ) 

librtc.c86 行で定義されています。

参照先 RTC::day, RTC::hour, RTC::min, RTC::msec, RTC_init_timer, RTC::sec, と RTC::tick.

参照元 main().

{
    rtc.msec = 0;
    rtc.sec = 0;
    rtc.min = 0;
    rtc.hour = 0;
    rtc.day = 0;
    rtc.tick = 0;

#ifndef RTC_LOWMEM
    rtc.secmeter = 0;
    rtc.minmeter = 0;
    rtc.hourmeter = 0;
#endif

    RTC_init_timer();

    T1CON = 0b1000000000000000;
    IPC0bits.T1IP = 5;
    IFS0bits.T1IF = 0;
    IEC0bits.T1IE = 1;
    return;
}

呼出しグラフ:


変数

librtc.c33 行で定義されています。

参照元 __attribute__(), ADC_init(), EEPROM_write(), main(), SCREEN_main(), と SSM_init().