定时器中断实验中,定时中断控制的DS1灯正常闪烁,主函数里的DS0灯不闪烁,是什么原因

2019-07-21 00:29发布

定时器中断实验中,定时中断控制的DS1灯正常闪烁,主函数里的DS0灯不闪烁,是什么原因
int main(void)
{
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏ輶·Ö×é2
        delay_init(168);  //3õê¼»ˉÑóê±oˉêy
        LED_Init();                                //3õê¼»ˉLED¶Ë¿ú

        TIM3_Int_Init(5000-1,8400-1);        //¶¨ê±Æ÷ê±Öó84M£¬·ÖÆμÏμêy8400£¬ËùòÔ84M/8400=10KhzμļÆêyÆμÂ꣬¼Æêy5000′ÎÎa500ms     
        while(1)
        {
                LED0=!LED0;//DS0·-×a
                delay_ms(200);//Ñóê±200ms
        };
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
365mcu
1楼-- · 2019-07-21 04:40
把LED0 =!LED0;放在定时器中断能够正常闪烁(如果能够正常闪烁那就是你这个delay_msm有问题)?那delay_ms函数是通过什么方式实现的,确定有效?
Angela
2楼-- · 2019-07-21 07:13
 精彩回答 2  元偷偷看……
烟酒不沾
3楼-- · 2019-07-21 10:57
while(1)
{

};    大括号后你多了个分号,去掉试试!
feisheng168
4楼-- · 2019-07-21 11:48
 精彩回答 2  元偷偷看……
feisheng168
5楼-- · 2019-07-21 11:54
本帖最后由 feisheng168 于 2015-12-29 14:42 编辑

是不是用的同一个端口如PB0-PB15之间,如果是那就对了,就是这个现象。
不要在中断里执行IO操作,因为中断反汇编会有异常处理,在中断设标志位,在主函数执行IO就不会错了


365mcu
6楼-- · 2019-07-21 12:27
feisheng168 发表于 2015-12-29 14:32
是不是用的同一个端口如PB0-PB15之间,如果是那就对了,就是这个现象。
不要在中断里执行IO操作,因为中断 ...

中断里可以执行IO操作,只是尽量减少操作量,防止中断执行不正确(操作时间超过定时时间)

一周热门 更多>