AVR 单片机定时器0中断没执行
来源:百度知道 编辑:UC知道 时间:2024/05/12 09:18:26
用的是PROTUES仿真,C口接有LED,为低电平时点亮,
#include"avr/io.h"
#include"avr/interrupt.h"
//#include"avr/signal.h"
int main()
{
unsigned int i;
DDRC=0XFF;
PORTC=0XFF;
TCCR0=0X05;//1024预分频
TIMSK=0X01;//开定时器
TCNT0=0x10;//初始赋值
// OCR0=0x7D;
sei(); //开全局
while(1);
}
void SIGNAL(SIG_OVERFLOW0)
{
TCNT0=10;//重新赋值
PORTC=0X00;//点亮LED
// OCR0=0x7D;
}
楼下的,void SIGNAL(SIG_OVERFLOW0)
这个就是中断程序,我用的是GCC,不是ICC。
___________
谢谢2楼的回答。
但是我重写了,还是没有解决问题。
我的QQ370215970,恳请赐教
#include"avr/io.h"
#include"avr/interrupt.h"
//#include"avr/signal.h"
int main()
{
unsigned int i;
DDRC=0XFF;
PORTC=0XFF;
TCCR0=0X05;//1024预分频
TIMSK=0X01;//开定时器
TCNT0=0x10;//初始赋值
// OCR0=0x7D;
sei(); //开全局
while(1);
}
void SIGNAL(SIG_OVERFLOW0)
{
TCNT0=10;//重新赋值
PORTC=0X00;//点亮LED
// OCR0=0x7D;
}
楼下的,void SIGNAL(SIG_OVERFLOW0)
这个就是中断程序,我用的是GCC,不是ICC。
___________
谢谢2楼的回答。
但是我重写了,还是没有解决问题。
我的QQ370215970,恳请赐教
我用你的程序编译了一下,发现有错误,void SIGNAL(SIG_OVERFLOW0)
这地方有错,擦掉重写就没事了,我用proteus测试正常,中断可以进入,
另外,你的程序原本led就只能一直亮下去的,不要以为程序出错
还是没定义中断服务程序。
系统产生中断申请后,没有找到中断服务程序。