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

呵呵!你没有遇到过中断IO口执行错误的程序,在同一端口操作时主程序在执行IO操作时突然中断,当前程序堆栈,执行中断时又执行当前IO,你想那你执行后,在返回主程序是IO堆栈出栈,会把你中断程序可能被修改,这时程序就会乱。出现怪问题,你有可能想都想不到的问题,为什么操作系统在执行有些程序时必须先关中断原因,你反汇编看看就知道了,呵呵!

一周热门 更多>