Soy nuevo en los microcontroladores y en el dsPIC33 y quiero escribir un programa simple antes de entrar en algo más complejo (aunque esto ya me parece muy complejo ...). Estoy intentando encender un LED en mi placa de desarrollo dsPICDEM MCLV-2 usando mi microcontrolador dsPIC33EP256MC506. En este momento, mi código solo hace que el LED permanezca encendido sin que yo presione el botón. ¿Puede alguien ayudarme a encontrar qué hay de malo con mi código?
¡Si alguien sabe de algún programa de ejemplo que pueda ejecutar y jugar, también sería muy útil!
Compilador: MPLAB X
Programador / Depurador: REAL ICE
Microcontrolador: dsPIC33EP256MC506
Dev Board: dsPICDEM MCLV-2
main.c
int16_t main(void)
{
/* Configure the oscillator for the device */
ConfigureOscillator();
/* Initialize IO ports and peripherals */
InitApp();
TRISDbits.TRISD6 = 0; //set LED as output
TRISGbits.TRISG6 = 1; //set Button as input, port unknown
while(1)
{
if(S3 == 0) { //start/stop switch
uint32_t N = 21000000;
while(S3) //debounce
while(N--);
LATDbits.LATD6 = 1; //make LED pin high
}
}
}
usuario.h
#define S3 !PORTGbits.RG6 //S2 button
#define S2 !PORTGbits.RG7 //S3 button
#define D2 !PORTDbits.RD6 //D2 LED
#define DEBOUNCE_DELAY 30 //push button debounce delay, expressed in millisecond
/******************************************************************************/
/* User Function Prototypes */
/******************************************************************************/
/* TODO User level functions prototypes (i.e. InitApp) go here */
void InitApp(void); /* I/O and Peripheral Initialization */