AnsweredAssumed Answered

Aduc7020 can't enable IRQ0-IRQ1

Question asked by monkey911 on Apr 17, 2017
Latest reply on Sep 25, 2017 by Aj.Hernandez

Hi,

I'am working on project where I have EVAL Aduc7020MKZ and MMA8452Q Accelerometer. Accelerometr can send interrupts when data ready. I'am using pins 20(IRQ0) and 21(IRQ1) for handling external interrupts. The problem is that I can't set IRQEN variable to XIRQ1_BIT.

 

void init_i2c_uart(){          

   GP1CON = 0x2211;         // Set UART tx & rx pins on P1.0 and P1.1  = 0x0011 
                            // and I2C on P1.2(SCL) and P1.3(SDA)     = 0x2200 

   // Start setting up I2C at 100kHz         
   I2C1CFG = 0x82;          // Master Enable & Enable Generation of Master Clock        
   I2C1DIV = 0xCFCF;        // 0xCFCF = 100kHz, 0x3232 = 400kHz         

   // Start setting up UART at 9600 bauds        
   COMCON0 = 0x080;        // Setting DLAB        
   COMDIV0 = 0x88;         // Setting DIV0 and DIV1 to DL calculated
   COMDIV1 = 0x000;        
   COMCON0 = 0x007;        // Clearing DLAB         

   // Interrupt config        
   IRQ = My_IRQ_Function;  // Interrupt rutine         
   // Interrupt enabled        
   // SM_MASTER1_BIT = I2C1, XIRQ0_BIT = IRQ0, XIRQ1_BIT = IRQ1        
   IRQEN = XIRQ1_BIT;         

   GP4DAT = 0x04000000;     // P4.2 configured as an output. LED is turned on
}

int main (){      
   POWKEY1 = 0x01;     
   POWCON = 0x00;     
   POWKEY2 = 0xF4;      

   init_i2c_uart();     
   i2c_byte_read(ACC_ADDR, WHO_AM_I);     

   while (1){;}
}

The LED on GP4DAT won't lit after IRQEN = XIRQ1_BIT.
I tried another varible like SM_MASTER1_BIT and everything worked fine and LED was turned on.

Outcomes