二胖1988 发表于 2013-3-25 11:22:47

ATxmega128a1 产生不了外部中断 求指点

#include <avr/io.h>
#include <util/delay.h>
#include <avr/signal.h>
#include <avr/interrupt.h>

#define uint unsigned int


void Init_Interrupt(void)
{
       
        PORTK_PIN4CTRL=PORT_OPC_PULLUP_gc|PORT_ISC_FALLING_gc;;//上拉,下降沿触发
       
        PORTK_INT0MASK=0x01;//开端口的外部中断

        PORTK_INTCTRL=(PORTK.INTCTRL&~PORT_INT0LVL_gm)|PORT_INT0LVL_MED_gc;//中断级别
       
        PMIC_CTRL |= PMIC_MEDLVLEN_bm|PMIC_HILVLEN_bm|PMIC_LOLVLEN_bm;//PIMC级别选择与上面中断相对应


}

int main(void)
{

        PORTK.DIR &= 0xEF;//PD4端口作为输入

        PORTC.DIR = 0xFF;//端口作为输出
        PORTC.OUT=0xFF; //上电全高
        Init_Interrupt();
        sei();
        while(1)
        {
                PORTC_OUT=0x0e;
        }

}

ISR(PORTK_INT0_vect)
{
        PORTC_OUT=0x01;
}

cash95 发表于 2013-3-25 11:24:46

Xmega问题,到atmel网站呼叫官方的中文支持,或者抄一下asf的代码即可搞定。

二胖1988 发表于 2013-3-25 11:31:59

我知道哪错了 MPCMASK没有对应我要输出的端口 改成 0x10;就对了因为我用的是PK4口
页: [1]
查看完整版本: ATxmega128a1 产生不了外部中断 求指点