Hola, estoy comenzando con los DSPICs y C30, intente hacer parpadear un led y me encontré que la secuencia "Led4 =! Led4:" no me funciona, solo me cambia el estado de 0 a 1 y se mantiene siempre a 1 sabéis la razón?
gracias
// Hace parpadear 3 veces un led conectado en RB4 con un XT de 10Mhz
#define __dsPIC30F2010__
#include <p30fxxxx.h>
/****************************************/
/* FUSES para el 30F2010 */
/****************************************/
_FOSC(CSW_FSCM_OFF & HS);
_FWDT(WDT_OFF); //Watchdog deshabilitado
_FBORPOR(PBOR_OFF & PWRT_OFF & MCLR_EN); //Reset por baja tensión deshabilitado, retardo al inicio deshabilitado, pint MCLR habilitado como reset
_FGS(CODE_PROT_OFF); //Protección de código deshabilitado
/****************************************/
/* DEFINICIONES Y DECLARACIONES */
/****************************************/
#define Led4 PORTBbits.RB4
/*****************************************************************************/
/* Rutinas para retardo, se le asigna el valor 30002 a x y se decremento en 1*/
/*****************************************************************************/
retardo() {
int x = 0; //Declaramos X de tipo int y de valor variable
for( x=30002; x>0; x-- ){ //Le asignamos a X el valor 30002, se resta hasta que el valor de X sea 0
}
}
/************************************************/
/* Programa principal */
/************************************************/
int main ( void ) {
TRISBbits.TRISB4 = 0; //Configuramos RB4 como salida
char contador = 0;
while(contador <= 2) { //Se ejecuta tres veces
Led4 =! Led4; ----------->NO me funciona???
retardo();
// Led4 =1;
// retardo();
// Led4 =0;
retardo();
contador ++;
}
for (;
{}
}