请问一下在AVR stdio里面这样写为什么没法执行?

2019-03-24 20:21发布

定时器中断配置正确,LED端口正确,已验证。 目前就是if判断无法执行, 也就是说定时器里将k置位, 但主函数中却没执行。
请求赐教。函数如下:

char k;
int main(void)
{               
    sys_init();
    while (1)
    {                          
        if(k==1)
        {       
            LED_clp;                       
            k=0;                       
        }               
    }
}

ISR(TIM0_OVF_vect)  //中断向量名称:TIMER0_COMPA
{
        k=1;
        TCNT0 =0xda;  
}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
tashalee
2019-03-25 12:47
dcexpert 发表于 2016-2-18 11:49
中断里用的变量,需要加volatile关键字。

volatile char k;

真心感激感激, 一个小问题困扰一上午啊。

一周热门 更多>