芯片解密HC32L136内部配置了RTC计时器,将它与SLCD液晶屏配合即可实现一个RTC电子时钟。
实现电子时钟的主程序为:
- int32_t main(void)
- {
- uint32_t i;
- uint16_t str[4];
- Sysctrl_ClkSourceEnable(SysctrlClkRCL,TRUE);
- Sysctrl_SetRCLTrim(SysctrlRclFreq32768);
- Sysctrl_SetPeripheralGate(SysctrlPeripheralLcd,TRUE);
- Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);
- App_PortCfg();
- App_LcdCfg();
- Lcd_ClearDisp();
- stc_rtc_time_t readtime;
- Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);
- Sysctrl_SetPeripheralGate(SysctrlPeripheralRtc,TRUE);
- Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE);
- RTC_Cfg();
- EnableNvic(RTC_IRQn, IrqLevel3, TRUE);
- Rtc_Cmd(TRUE);
- while (1)
- {
- M0P_GPIO->PDOUT ^= (1U << 5);
- if(flag == 1)
- {
- flag = 0;
- Rtc_ReadDateTime(&readtime);
- second = readtime.u8Second;
- minute = readtime.u8Minute;
- hour = readtime.u8Hour;
- str[0] = lcd_tab[minute>>4];
- str[1] = lcd_tab[minute&0x0f]|LCD_POINT;
- str[2] = lcd_tab[second>>4];
- str[3] = lcd_tab[second&0x0f];
- LCD_Display(str);
- }
- delay1ms(500);
- }
- }