定时器中断实验中,定时中断控制的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 16:04
 精彩回答 2  元偷偷看……
feisheng168
2楼-- · 2019-07-21 19:41
365mcu 发表于 2015-12-29 15:11
中断里可以执行IO操作,只是尽量减少操作量,防止中断执行不正确(操作时间超过定时时间)

呵呵!你没有遇到过中断IO口执行错误的程序,在同一端口操作时主程序在执行IO操作时突然中断,当前程序堆栈,执行中断时又执行当前IO,你想那你执行后,在返回主程序是IO堆栈出栈,会把你中断程序可能被修改,这时程序就会乱。出现怪问题,你有可能想都想不到的问题,为什么操作系统在执行有些程序时必须先关中断原因,你反汇编看看就知道了,呵呵!
Angela
3楼-- · 2019-07-22 01:29
谢谢亲们   我这个程序是有问题的  现在问题已经解决了  谢谢大家
Angela
4楼-- · 2019-07-22 02:48
 精彩回答 2  元偷偷看……
365mcu
5楼-- · 2019-07-22 03:04
feisheng168 发表于 2015-12-29 16:43
呵呵!你没有遇到过中断IO口执行错误的程序,在同一端口操作时主程序在执行IO操作时突然中断,当前程序堆 ...

那就不要在同时写同一个的IO就可以啊,比如我中断对PB0写,其他地方我只读,是不会有问题的,不能说中断中就不能操作IO吧!?我建议只是慎重使用就可以了啊!
feisheng168
6楼-- · 2019-07-22 04:43
 精彩回答 2  元偷偷看……

一周热门 更多>