#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().