在定时器中断下,为什么按键没有任何效果,是哪里出现了什么问题
下面是写的程序
#include "sys.h"
#include "delay.h"
#include "lcd.h"
#include "led.h"
#include "key.h"
#include "usart.h"
#include "timer.h"
u8 a,b,c;//ê±·ÖÃëÏÔê¾
int main(void)
{
u8 t;
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
uart_init(9600); //′®¿ú3õê¼»ˉÎa9600
TIM3_Int_Init(9999,7199);//10KhzμļÆêyÆμÂê,¼Æê±1Ãë
LCD_Init(); //LCD3õê¼»ˉ
LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
KEY_Init (); //°′¼ü3õê¼»ˉ
POINT_COLOR=RED;
LCD_Clear(RED);
POINT_COLOR=RED;
LCD_ShowString(20,40,200,24,24,"Mini STM32 ^_^");
LCD_ShowString(30,70,200,24,24,"Time:");
LCD_ShowString(128,100,200,24,24,":");
LCD_ShowString(92,100,200,24,24,":");
LCD_ShowString(30,130,200,24,24,"Year To Day:");
LCD_ShowString(70,160,200,24,24,"2017/2/15");
while(1)
{
t=KEY_Scan(0); //得到键值
if(t==KEY0_PRES) //
{
b++;
if(b==60)
{
a++;
b=0;
if(a==24)
a=0;
}
LED0=!LED0;
LCD_ShowxNum(140,100,c,2,24,0);//ÏÔê¾Ãë
LCD_ShowxNum(104,100,b,2,24,0);//ÏÔê¾·Ö
LCD_ShowxNum(70,100,a,2,24,0);//ÏÔê¾ê±
}
if (t==KEY1_PRES) //¼õ·Ö
{
b--;
if(b==60)
{
a--;
b=0;
if(a==24)
a=0;
}
LED1=!LED1;
LCD_ShowxNum(140,100,c,2,24,0);//ÏÔê¾Ãë
LCD_ShowxNum(104,100,b,2,24,0);//ÏÔê¾·Ö
LCD_ShowxNum(70,100,a,2,24,0);//ÏÔê¾ê±
}
if(t==WKUP_PRES) //wk_up°′ÏÂ
{
if(KEY0==0) //KEY0°′ϼóê±
{
a++;
if(a==24)
a=0;
}
else if(KEY1==0)
{
a--;
if(a==24)
a=0;
}
LCD_ShowxNum(140,100,c,2,24,0);//ÏÔê¾Ãë
LCD_ShowxNum(104,100,b,2,24,0);//ÏÔê¾·Ö
LCD_ShowxNum(70,100,a,2,24,0);//ÏÔê¾ê±
}
delay_ms(10);
}
}
|