📄 main.c
字号:
#include"uhal.h"
#include"myuart.h"
#include"Timer.h"
#include"Isr.h"
#include"44b.h"
#include"zlg7289.h"
#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting
extern Timer3INTCount;
extern int Zlg7289SIOBand;
extern int Zlg7289SIOCtrl;
void Timer();
int hour = 0, miniter = 0, second = 0 ;
int main(void)
{ int val=0;
ARMTargetInit(); //开发版初始化
Zlg7289_Reset();
Init_Timer3(100,16,41770,20000);
INTS_OFF();//Disable interrupt in PSR
SetISR_Interrupt(INT_TIMER3_OFFSET, Timer,0);
Open_INT_GLOBAL();
Open_INT(BIT_TIMER3);
INTS_ON();//Enable interrupt in PSR
Start_Timer3();
Uart_Printf("\n");
while(1)
{
if(rPDATG&ZLG7289_KEY)
{
int key = GetKey();
switch (key)
{
case 1:
hour ++;
hour %=24;
break;
case 2:
miniter ++;
miniter %= 60;
break;
case 3:
second ++;
break;
default:
Uart_Printf("no use");
break;
};
}
Uart_Printf("\r%d ",rTCNTO3); Delay(1000);}
}
void Timer()
{
second++;
if(second == 60)
{
second = 0;
miniter++;
}
if(miniter == 60)
{
miniter = 0;
hour++;
}
if(hour == 24)
{
hour = 0;
}
ZLG7289_ENABLE();//使zlg7289占有同步串口
Delay(5);//延时
WriteSDIO(ZLG7289_CMD_HIDE);//使个位数码管显示
WriteSDIO(255);
Delay(1);//延时
WriteSDIO(ZLG7289_CMD_DATA0|0);//数码管以方式0译码,第一个数码管亮
WriteSDIO(second%10);//显示个位
Delay(1);//延时
WriteSDIO(ZLG7289_CMD_DATA0|1);//数码管以方式0译码,第一个数码管亮
WriteSDIO(second/10);//显示个位
Delay(1);//延时
WriteSDIO(ZLG7289_CMD_DATA0|2);//数码管以方式0译码,第一个数码管亮
WriteSDIO(10);//显示个位
Delay(1);//延时
WriteSDIO(ZLG7289_CMD_DATA0|3);//数码管以方式0译码,第一个数码管亮
WriteSDIO(miniter%10);//显示个位
Delay(1);//延时
WriteSDIO(ZLG7289_CMD_DATA0|4);//数码管以方式0译码,第一个数码管亮
WriteSDIO(miniter/10);//显示个位
Delay(1);//延时
WriteSDIO(ZLG7289_CMD_DATA0|5);//数码管以方式0译码,第一个数码管亮
WriteSDIO(10);//显示个位
Delay(1);//延时
WriteSDIO(ZLG7289_CMD_DATA0|6);//数码管以方式0译码,第一个数码管亮
WriteSDIO(hour%10);//显示个位
Delay(1);//延时
WriteSDIO(ZLG7289_CMD_DATA0|7);//数码管以方式0译码,第一个数码管亮
WriteSDIO(hour/10);//显示个位
Delay(1);//延时
ZLG7289_DISABLE();
Uart_Printf("\r%d ",Timer3INTCount);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -