#include <p24FJ64GA002.h>#include "table.h"#include "librtc.h"
マクロ定義 | |
| #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 |
参照元 RTC_init().
| void __attribute__ | ( | (interrupt, auto_psv) | ) |
参照先 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 | |||
| ) |
参照元 __attribute__(), EEPROM_write(), main(), と SCREEN_main().
{
if(start <= end){
return(end - start);
} else {
return(end + (0xffff - start) + 1);
}
/* ここにきたらバグ */
return(0);
}

| void RTC_init | ( | void | ) |
参照先 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;
}

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