pic16f676 TIMER0中断不返回 请求帮助!!

2020-02-10 08:35发布

程序跑到  PORTC&=~(1<<5)  语句之后没反映了????  PICC18编译器   谢谢名位啦!
不是自动返回的吗?

void interrupt isr (void)
{        if(T0IF)
                {
                        T0IF=0;
                Flag++;
                TMR0=0;
                if(Flag>10)
                        {PORTC&=~(1<<4);
                        PORTC|=(1<<5);}                       
                else
                        {PORTC|=(1<<4);
                        PORTC&=~(1<<5);}
                }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
millwood0
1楼-- · 2020-02-11 07:51
"只要将 GIE置1 程序就不行!"

don't focus on what you can do to fix the error.

focus on why there is an error and then the fix will come to you.
JQ_Lin
2楼-- · 2020-02-11 09:00
注意理解【2楼】和【7楼】millwood0 的回复。
su_mj000
3楼-- · 2020-02-11 10:20
把那2句 asm("RETFIE"); 去掉。
那2句 asm("nop"); 也没有什么意义。

注意,能不用汇编就尽量别用。

“for(i=5;i>=0;i--)” 不太漂亮。可改为:

"for (i = 6; i; i--)" 或 "for (i = 6; i--;)"

int i; 可改为:unsigned char i; 无符号变量运算经常会快一些.
ihsk12
4楼-- · 2020-02-11 14:11
 精彩回答 2  元偷偷看……

一周热门 更多>