芯源半导体CW32
直播中

TLLED

11年用户 206经验值
擅长:嵌入式技术
私信 关注
[经验]

【CW32饭盒派开发板试用体验】- 定时器RTC显示

使用定时器实现RTC,在LCD屏幕上显示。

一、定时器

CW32F030x6/x8 微控制器内部集成多达四个通用定时器、三个基本定时器和一个高级控制定时器。
各个不同定时器的功能差异如下表所示:
001.png
这个测试使用基本定时器1实现。

二、代码部分

2.1、tim.c

#include "main.h"
#include "led.h"

uint8_t rtc_temp[10]={'0','0','.','0','0','.','0','0',' '};
uint8_t lcd_disp_flag=0;
uint8_t hour=0;
uint8_t min=0;
uint8_t sec=0;

uint16_t tim_cnt1=0;

void init_btim(void)
{
	BTIM_TimeBaseInitTypeDef BTIM_InitStruct;
	
	__RCC_BTIM_CLK_ENABLE();
	
	__disable_irq(); 
  NVIC_EnableIRQ(BTIM1_IRQn); 
  __enable_irq();
	
	BTIM_InitStruct.BTIM_Mode = BTIM_Mode_TIMER;
  BTIM_InitStruct.BTIM_OPMode = BTIM_OPMode_Repetitive;
  BTIM_InitStruct.BTIM_Period = 8000;
  BTIM_InitStruct.BTIM_Prescaler = BTIM_PRS_DIV8;
  BTIM_TimeBaseInit(CW_BTIM1, &BTIM_InitStruct);
	
  BTIM_ITConfig(CW_BTIM1, BTIM_IT_OV, ENABLE);
  BTIM_Cmd(CW_BTIM1, ENABLE);
}

void BTIM1_IRQHandler(void)
{
 if(BTIM_GetITStatus(CW_BTIM1, BTIM_IT_OV))
  {
    BTIM_ClearITPendingBit(CW_BTIM1, BTIM_IT_OV);
		
		tim_cnt1++;
		if(tim_cnt1>99)  //100ms
		{
			tim_cnt1=0;
			sec++;
			if(sec>59)
			{
				sec=0;
				min++;
				if(min>59)
				{
					min=0;
					hour++;
					if(hour>23)
					{
						hour=0;
					}
				}
			}
			rtc_temp[0]=(hour/10)+0x30;
			rtc_temp[1]=(hour%10)+0x30;
			
			rtc_temp[3]=(min/10)+0x30;
			rtc_temp[4]=(min%10)+0x30;
			
			rtc_temp[6]=(sec/10)+0x30;
			rtc_temp[7]=(sec%10)+0x30;
			led2_tog();
			lcd_disp_flag=1;
		}
	}
}

2.2、main.c

int32_t main(void)
{
	
		rcc_config();
		delay_init();
		uart_init(115200);	
    init_led();
		init_adc();
		init_btim();
		Lcd_Init();
		Lcd_Clear(GRAY0);               //清屏
		Gui_DrawFont_GBK16(0,5,BLACK,GRAY0,"HELLO CW32F030");
		Gui_DrawLine(21, 50,100, 50,GRAY0);	
		Gui_DrawFont_GBK16(0,22,RED,GRAY0,"TEST TIM RTC");
		Gui_DrawFont_GBK16(0,39,RED,GRAY0,rtc_temp);
	
		printf("\r\nCW32F030 tim test\r\n");
	
    while (1)
    {
			if(lcd_disp_flag==1)
			{
				lcd_disp_flag=0;
				Gui_DrawFont_GBK16(0,39,RED,GRAY0,rtc_temp);
			}
    }
}

三、程序运行

VID_20230523_070534

更多回帖

发帖
×
20
完善资料,
赚取积分