打印
[AVR单片机]

GCCAVR无法进入定时中断

[复制链接]
2129|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sdu_yqc|  楼主 | 2011-8-5 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不知道为什么进入不了溢出中断,中断也打开了,经试验发现,中断标志也被置1了,但是就是没执行溢出中断子程序。为什么呢?
void timer1_init()
{
    TCCR1A = 0x00;
TCCR1B=_BV(ICNC1)|_BV(ICES1);  //输入捕获噪音消除,上升沿触发捕获
TCCR1B|=0X04;  //256分频
        TCNT1H=0X0B;//定时1s
        TCNT1L=0XDB;
TIMSK=_BV(TICIE1)|_BV(TOIE1);  //输入捕获、溢出中断使能
        SREG|=0X80; //sei();
}

void main()
{
        uchar i;
        DDRA=0XFF;PORTA=0X00;
        DDRB=0XF0;PORTB=0XF0;
        timer1_init();
        ACSR=_BV(ACIC);  //比较器初始化,输入捕获使能
        while(1)
        {
            if(a!=0)
                {
                a=0;
                for(i=4;i>0;i--)
                {
                Display_Buffer[i-1]=f%10;
                    f/=10;
                }
                Show_FRQ_ON_DSY();
                }
        }               
}

ISR(TIMER1_CAPT_vect)
{
    freq++;
}

ISR(TIMER1_OVF_vect)
{
    TCNT1H=0X0B;
        TCNT1L=0XDB;
f=freq;
        a=1;
        freq=0;
}

相关帖子

沙发
sdu_yqc|  楼主 | 2011-8-18 20:22 | 只看该作者
捕获中断改为比较器中断,测量信号频率问题解决。。

使用特权

评论回复
板凳
qin552011373| | 2011-8-22 14:02 | 只看该作者
学习了

使用特权

评论回复
地板
jamin.x| | 2011-9-28 16:29 | 只看该作者
你用输入捕获中断,那么输入捕获源了? 你用模拟比较器又是怎么让它一直不断进入比较中断的了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

140

帖子

1

粉丝