int main(void) { /* perform the needed initialization here */ InitLed(); currentLed = REDLED; LedOn(currentLed); for(;;){ // Esperar para cambiar el estado del led for( i = counter ; i > 0 ; --i ){ } ToggleLed(currentLed); switch(currentLed){ case REDLED: currentLed = YELOWLED; break; case YELOWLED: currentLed = GREENLED; break; case GREENLED: currentLed = RGBLED_RED; break; case RGBLED_RED: currentLed = RGBLED_BLUE; break; case RGBLED_BLUE: currentLed = RGBLED_GREEN; break; case RGBLED_GREEN: currentLed = RGBLED_VIOLT; break; case RGBLED_VIOLT: currentLed = REDLED; break; default: break; } ToggleLed(currentLed); if( elapsedCycles < TOGGLE_CYCLES ){ ++elapsedCycles; } else{ if( counter < accelCounter ){ counter = 10000000; } counter = counter - accelCounter; elapsedCycles = 0; } } return 0; }
/*Aplicación en la que se hacen parpadear todos los leds de la placa.*/ int main(void) { #define DELAY 5000000 edu_CIAA_ledRGB ledRGB; ledRGB.red = 1; ledRGB.green = 1; ledRGB.blue = 1; uint32_t i; /*Configuro/inicializo los puertos para operar sobre los leds.*/ InitGPIO_EDUCIAA_Leds(); /*Hago parpadear todos los leds*/ while(1) { for(i = DELAY; i != 0; i--) { asm("nop"); } ToggleLed(LED_AMARILLO); ToggleLed(LED_ROJO); ToggleLed(LED_VERDE); ToggleLedRGB(&ledRGB); } }
/*Aplicación en la que se encienden y apagan todos los leds de la placa, * de modo secuencial.*/ int main(void) { tec.T1 = 1; tec.T2 = 1; tec.T3 = 1; tec.T4 = 1; rgb.blue = 1; rgb.green = 1; rgb.red = 1; uint32_t i; #define DELAY 5000000 InitGPIO_EDUCIAA_Teclas(); InitGPIO_EDUCIAA_Leds(); while(1) { Escaneo_Teclado(&tec); if (tec.T1 == 0) { rgb.blue=1; rgb.green=1; rgb.red=1; ToggleLedRGB(&rgb); } else { rgb.blue=0; rgb.green=0; rgb.red=0; RGBoff(&rgb); } if (tec.T2 == 0) ToggleLed(LED_AMARILLO); else LEDoff(LED_AMARILLO); if (tec.T3 == 0) ToggleLed(LED_ROJO); else LEDoff(LED_ROJO); if (tec.T4 == 0) ToggleLed(LED_VERDE); else LEDoff(LED_VERDE); for(i = DELAY; i != 0; i--) { asm("nop"); } } }
/** * @brief This function handles External line 0 interrupt request. * @param None * @retval None */ void EXTI0_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line0) != RESET) { /* Toggle LED1 */ ToggleLed(); NVIC_SystemReset(); /* Clear the EXTI line 0 pending bit */ EXTI_ClearITPendingBit(EXTI_Line0); } }
int main(void) { /* Watchdog timer disabled */ WDTCTL = WDTPW + WDTHOLD; BspInit(); // Set up TimerInit(); LedCtor(&led, kPort1, kPin5); //P1.5 (red) ToggleLed(); __eint(); // Enable global interrupts while(true) { if (tog == 1) //1 second { tog = 0; ToggleLed(); } } }
unsigned long RTCHandler(void *pvCBData, unsigned long ulEvent, unsigned long ulMsgParam, void *pvMsgData) { // RTC increment interrupt if(RTCIntFlagCheck(RTC_INT_INC)) { //Clear second increment interrupt RTCIntFlagClear(RTC_INT_INC); ToggleLed(); } // RTC alarm match interrupt if(RTCIntFlagCheck(RTC_INT_ALARM)) { //Clear alarm interrupt then reset counter. RTCIntFlagClear(RTC_INT_ALARM); RTCCounterReset(); RTCTimeSet(RTC_TIMETYPE_SECOND, 0); RTCTimeSet(RTC_TIMETYPE_MINUTE, 0); RTCTimeSet(RTC_TIMETYPE_HOUR, 0); RTCTimeSet(RTC_TIMETYPE_DAYOFWEEK, 0); RTCTimeSet(RTC_TIMETYPE_DAYOFMONTH, 0); RTCTimeSet(RTC_TIMETYPE_DAYOFYEAR, 0); RTCTimeSet(RTC_TIMETYPE_MONTH, 0); RTCTimeSet(RTC_TIMETYPE_YEAR, 0); RTCAlarmSet(RTC_TIMETYPE_SECOND, 0); RTCAlarmSet(RTC_TIMETYPE_MINUTE, 1); RTCAlarmSet(RTC_TIMETYPE_HOUR, 0); RTCAlarmSet(RTC_TIMETYPE_DAYOFWEEK, 0); RTCAlarmSet(RTC_TIMETYPE_DAYOFMONTH, 0); RTCAlarmSet(RTC_TIMETYPE_DAYOFYEAR, 0); RTCAlarmSet(RTC_TIMETYPE_MONTH, 0); RTCAlarmSet(RTC_TIMETYPE_YEAR, 0); // Fast blink LED SysCtlDelay(TICK_SLOW); ToggleLed(); SysCtlDelay(TICK_SLOW); ToggleLed(); SysCtlDelay(TICK_SLOW); ToggleLed(); SysCtlDelay(TICK_SLOW); ToggleLed(); SysCtlDelay(TICK_SLOW); ToggleLed(); } return (0); }