AnsweredAssumed Answered

Why the interruptions are not working?

Question asked by Niño Canizales on May 24, 2018
Latest reply on May 30, 2018 by Victor Jimenez

Im using lpc xpresso 1769, and the pin with the interrupt is on the pin of the image.

I Run the code a couple of times, what the interrupt does is change the value of a boolean to execute a sum or subtraction; but after a while it stopped working.

The interrupt is a push button NA.

Thanks in advance.


#ifdef __USE_CMSIS
#include "LPC17xx.h"
#endif

#include <cr_section_macros.h>
#include <NXP/crp.h>
#include "lpc17xx_gpio.h"
#include "lpc17xx_timer.h"
#include <math.h>
#include "lpc17xx_adc.h"
#include "lpc17xx_pinsel.h"


// Variable to store CRP value in. Will be placed automatically
// by the linker when "Enable Code Read Protect" selected.
// See crp.h header for more information
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;
typedef int bool;
#define true 1
#define false 0
#define USERTASK_STACK_SIZE configMINIMAL_STACK_SIZE

extern int Timer0_Wait();
// TODO: insert other include files here

// TODO: insert other definitions and declarations here

/** Fast GPIO port 0 byte accessible definition */

bool toggle=0;
int lectura1;
int lectura2;
int suma,r;
int intput,intput2;

void INIT_RGB (void);
void Contador_RGB(void);

uint32_t del =0x00000FFF;
uint32_t var2=0x00000000;


void CONFIG_GPIO (void);//prototipo de la funcion
void Int_Out (void);

char Inputs;


int main(void)
{

CONFIG_GPIO ();//llamada a la funcion

while(1)
{
Int_Out();

}
}

void CONFIG_GPIO (void)//funcion
{
GPIO_SetDir(2,0x000000FF, 1);
GPIO_ClearValue(2,0x000000FF);
GPIO_SetDir(0,0x000000FF, 0);
GPIO_ClearValue(0,0x000000FF);
GPIO_IntCmd(0,0x00002000,0);
NVIC_EnableIRQ(EINT3_IRQn);
}
void Int_Out(void)
{
//char PrimerTermino;
//char SegundoTermino;
intput = GPIO_ReadValue(0)&0xF;
intput2 = (GPIO_ReadValue(0)&0xF0)>>4;
if(r!=1){
suma = intput - intput2;
}
else{
suma = intput + intput2;
}
GPIO_SetValue(2,suma);
GPIO_ClearValue(2,0xFF);

}

 

extern void EINT3_IRQHandler(void)
{
if(r==0){
r=1;
}
else{
r = 0;
}

GPIO_ClearInt(2,0x00002000);
toggle=!toggle;
}

Outcomes