在线时间3 小时
UID366961
ST金币0
蝴蝶豆0
注册时间2008-6-15
初级会员
- 最后登录
- 2019-5-4
|
a0a.1 0b0c
main()
{
char1 b1;
GPIO_1();
D2_ODR=1;
//************************************************************
B4=0xff;
B6=0x00;
while(1)
{
menu_0(); //读取EEROM;
array_0(); //EEROM 写入数组;
for(b1=0;b1=9)
{B2=9;}
}
if(b1==59)
{b1=0;
time[B2]=time[B2]-1;
}
return;
}
void time2_IER(void)
{
CLK_CKDIVR=0B00000000;
TIM2_PSCR =0B00001000; //定时器分频
TIM2_ARRH =0xF4;
TIM2_ARRL =0x24;
TIM2_CNTRH =0x00; //
TIM2_CNTRL =0x00;
TIM2_EGR =0x01; //事件产生寄存器
TIM2_SR1 =0x00;
TIM2_IER =0x01; //中断寄存器
TIM2_CR1 |=0B00000101; //开定器;
}
我这个用LED数码管显示,定时中断时间是1S,但是第一次进中断的时间总是不对。
因为time[B2]在第一次读取的时个,数据是10,但是一上电,显示就是9,只有进入中断后,才会是9,而上电到进中断应该有1S的时间,而一电只看到9,说明第一次时中断时间没有达到1S,不知为何。
在定时子程序里面,我也有加载手动更新。结果第一次进中断的时间还是不对。
还请各位指点下,搞了好几天,也没有找到原因。 |
|