202duino で Real-Time Counter (RTC) の練習 [Arduino]
ATtiny202でのRTCを調べてみた。
Getting Started with RTC
https://ww1.microchip.com/downloads/en/Appnotes/TB3213-Getting-Started-with-RTC-DS90003213B.pdf
ここにサンプルがあったので、megaTinyCore の ATtiny202 用に、さらにシンプルにしてみた。
RTC Overflow Interrupt Code Example
(0.5秒毎にLEDを点滅させる)
RTC Periodic Interrupt Code Example
(1秒毎にLEDを点滅させる)
スリープ関連のサンプルもあったけど、202duinoは、常にtype-Cから電源をとること、CH340E常時ONということもあり、まあいっか、、ということで。
Getting Started with RTC
https://ww1.microchip.com/downloads/en/Appnotes/TB3213-Getting-Started-with-RTC-DS90003213B.pdf
ここにサンプルがあったので、megaTinyCore の ATtiny202 用に、さらにシンプルにしてみた。
RTC Overflow Interrupt Code Example
(0.5秒毎にLEDを点滅させる)
// RTC Overflow Interrupt Code Example
void setup() {
PORTA.DIRSET = PIN6_bm;
PORTA.OUTSET = PIN6_bm;
while (RTC.STATUS > 0); // Wait for all register to be synchronized
RTC.PER = 511; // Set period
RTC.CLKSEL = RTC_CLKSEL_INT32K_gc; // 32.768kHz Internal Crystal Oscillator
RTC.DBGCTRL |= RTC_DBGRUN_bm; // Run in debug: enabled
RTC.CTRLA = RTC_PRESCALER_DIV32_gc // 32
| RTC_RTCEN_bm // Enable: enabled
| RTC_RUNSTDBY_bm; // Run In Standby: enabled
RTC.INTCTRL |= RTC_OVF_bm; // Enable Overflow Interrupt
}
void loop() {
}
ISR(RTC_CNT_vect)
{
RTC.INTFLAGS = RTC_OVF_bm; // Clear flag by writing '1': LED0_toggle();
PORTA.OUTTGL = PIN6_bm; // LED toggle
}
RTC Periodic Interrupt Code Example
(1秒毎にLEDを点滅させる)
// RTC Periodic Interrupt Code Example
void setup() {
PORTA.DIRSET = PIN6_bm;
PORTA.OUTSET = PIN6_bm;
while (RTC.STATUS > 0); // Wait for all register to be synchronized
RTC.CLKSEL = RTC_CLKSEL_INT32K_gc; // 32.768kHz Internal Crystal Oscillator
RTC.DBGCTRL |= RTC_DBGRUN_bm; // Run in debug: enabled
RTC.PITINTCTRL = RTC_PI_bm; // Periodic Interrupt: enabled
RTC.PITCTRLA = RTC_PERIOD_CYC32768_gc // RTC Clock Cycles 32768
| RTC_PITEN_bm; // Enable: enabled
pinMode( LED_BUILTIN, OUTPUT);
}
void loop() {
}
ISR(RTC_PIT_vect)
{
RTC.PITINTFLAGS = RTC_PI_bm; // Clear flag by writing '1':
PORTA.OUTTGL = PIN6_bm; // LED toggle
}
スリープ関連のサンプルもあったけど、202duinoは、常にtype-Cから電源をとること、CH340E常時ONということもあり、まあいっか、、ということで。
2023-06-04 22:57
nice!(0)
コメント(0)
コメント 0