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,不知为何。 在定时子程序里面,我也有加载手动更新。结果第一次进中断的时间还是不对。 还请各位指点下,搞了好几天,也没有找到原因。 |
从零开始操作STM8寄存器(风驰iCreate奉献)
【中文资料】初学STM8库函数的中文帮助软件
绝对经典的中文STM8学习手册,淘宝上学习板资料,友情大放送!
【原创教程】风驰iCreate独家开源STM8 27个例程和10多万字的pdf教程
STM8的LCD1602 4线驱动,为什么不工作
【精华资料】由零开始开发STM8
STM8S 的触摸库是如何在主程序中查询键的呢、
【精华资料】STM8的C语言编程1-14讲完整版
【精品教程】STM8系列单片机入门教程系列
在STVD下配置使用CXSTM8的方式
RE:STM8 第一次进中断不准;
RE:STM8 第一次进中断不准;