Ejecutando un programa de parpadeo de LED en cc2530

1

Estoy tratando de usar el siguiente código para parpadear el LED en el CC2530, ¿sería genial si alguien pudiera decirme qué estoy haciendo mal? Sé que esto es algo básico, ¡pero no puedo entender qué estoy haciendo mal! El LED se asigna a los puertos 0 y 7 pin (06).

Estoy usando IAR para depurar el programa, cuando lo ejecuto en pasos, ¡el LED no cambia! pero cuando lo ejecuto sin parar, el LED simplemente se ilumina, pensé que podría deberse a que el retraso es minúsculo, pero no importa qué valor de retardo use, simplemente brilla sin parpadear.

#define LED1_MASK  0x40
#define LED1_PIN   P0_6


int main()
{
  P0SEL &= ~(LED1_MASK);
  P0DIR |= (LED1_MASK);
  while(1)
  {
   //clock_delay(10000);  // i tried running empty for loops and NOP for loop too.
      LED1_PIN = 1;
      for(int i = 0; i< 1000; i++)
      {
        for(int j = 0; j< 1000; j++)
        {
          ASM(nop);
        }
      LED1_PIN = 0;
   }

EDITAR: Este es el programa real que estoy ejecutando, cometí un error al pegar antes (no estaba cambiando el valor de LED_PIN en el código). Lo siento por los problemas.

    
pregunta user260994

2 respuestas

1

Basándome en mi vasta experiencia, creo que no está parpadeando el LED. Cambiar segundo LED1_PIN = 1; to LED1_PIN = 0; y esperar un tiempo.

Editar: El tiempo de espera después de que el LED se haya apagado es tan bajo como para que el ojo humano lo perciba como apagado. Como apunta @peter, el retraso se puede hacer igual y enorme entre los segmentos de código de encendido y apagado. Felicidades ! Tienes tu código funcionando.

    
respondido por el Umar
1

Es posible que desee considerar este fragmento de código también.

while(1){
    LED1_PIN = LED1_PIN^0x40;            // toggle LED, P6
    Delay();
}


void Delay(void){
unsigned long volatile time;
time = 145448;  // 0.1sec Note this will change per the processor
    while(time){
        time--;
    }
}
    
respondido por el Mahendra Gunawardena

Lea otras preguntas en las etiquetas