OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请问aduc7026的2个外部中断程序怎么写?

共7条 1/1 1 跳转至

请问aduc7026的2个外部中断程序怎么写?

助工
2009-05-27 11:34:59    评分
7026有2个外部中断,都要写在irq里面,但是我用if去区分这两个外部中断时,它永远只执行在中断程序前面的if结构,请问高手这是什么原因?



关键词: 请问     aduc7026     外部     中断     程序     怎么    

高工
2009-05-27 14:09:38    评分
2楼
7026只有一个中断服务程序,这个确实有待提高。
但在中断服务函数中判断是哪个中断,然后执行那个,是可以的啊。
楼主可以看看你的中断服务程序,有没有把中断标志弄错了。或者把你的if结构的两个部分换个顺序试试看

助工
2009-05-31 08:34:14    评分
3楼

我用
if(IRQSTA==XIRQ0_BIT)
{...................
}

if(IRQSTA==XIRQ1_BIT)
{
.............................
}
来判断,程序只执行第一个if,换位置也一样啊

Jason_Zhang能写个例子看看吗?


高工
2009-05-31 13:40:26    评分
4楼
你这个写法不好,建议换成下面的:
if( (IRQSTA  & XIRQ0_BIT) != 0 )
{...................
}

if( (IRQSTA  & XIRQ1_BIT) != 0 )
{
.............................
}
现在试试看还是那样子吗?

助工
2009-06-10 10:16:09    评分
5楼
呵呵,问题解决了
外部中断高电平时间至少在1.5us以上

高工
2009-06-10 15:11:06    评分
6楼

哦,原来如此啊。ADuC7026除了ADC和DAC外,功能稍显弱了,所有中断都使用一个中断向量,中断方式种类也很少。不过很方便上手就是了


菜鸟
2017-05-08 15:19:35    评分
7楼
想请教您关于ADCU7026的硬件I2C读写程序的问题,我用7026读加速度计LIS35DE一直不对,卡死在while((I2C1FSTA & 0x30)!=0x00){},这一步,不知道这个硬件I2C到底怎么用,下面是我的写和读的函数

void I2C_write(unsigned char Sads, unsigned char Dads, int d){        
  I2C1MTX=Dads;
        I2C1ADR=Sads;
while((I2C1FSTA & 0x30)!=0x00){}
        I2C1MTX=d;
while((I2C1FSTA & 0x30)!=0x00){}
I2C1CCNT=0x80;
}


void I2C_read(unsigned char Sads,unsigned char Dads)
{
I2C1MTX=Dads;
I2C1ADR=Sads;
while ((I2C1FSTA&0xC0)!=0x00){}
delay(4000);
I2C1CNT=count;
I2C1ADR=Sads+1;
        if((I2C0MSTA & 0x8) == 0x8)                                   
        {
                dat= I2C1MRX;
                putchar(0xff);
        }
}

希望能帮忙看一下,十分感谢

共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]