帮我看看这个AVR128的外部中断函数错在哪

2019-03-24 20:15发布

本帖最后由 z45217 于 2017-11-10 15:43 编辑

#include <avr/io.h>
#include <avr/iom128.h>
#include <avr/interrupt.h>

SIGNAL(INT1_vect)
{
        cli();
}

int main(void)
{
        DDRD = 0xff;
        PORTD = 0xff;
        DDRD = 0X00;
        PORTD = 0X00;

        cli();
        EIMSK=0x00;
        EICRA=0x00;
        EICRA|=(1<<ISC11);
        EICRB=0x00;
        EIMSK=0x02;
        EIFR=0xff;
        sei();

        while(1);
        return 0;
}

为什么加了这句(EICRA|=(1<<ISC11);)就不能进中断了,
手测里这个是设置成下降沿中断的, 1.jpg
波形里面有下降沿啊 2.jpg ,就是不能进中断
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
xinjitmzy
1楼-- · 2019-03-25 04:31
1、检查配置,可以设置成双边沿触发,先进中断再说
2、检查电平信号是否真的跳变了,也就是说幅值够不够
3、检查中断函数入口地址,别弄错中断入口就麻烦了

一周热门 更多>