void SEC_ToggleOutput(SEC_Output_t signal) { SEC_OutputState[signal] = !SEC_OutputState[signal]; if (output_port) { switch (signal) { #ifdef LED_1 case SEC_LED1_OUTPUT: lwgpio_toggle_value(&led1); break; #endif #ifdef LED_2 case SEC_LED2_OUTPUT: lwgpio_toggle_value(&led2); break; #endif #ifdef LED_3 case SEC_LED3_OUTPUT: lwgpio_toggle_value(&led3); break; #endif #ifdef LED_4 case SEC_OPEN_OUTPUT: lwgpio_toggle_value(&led4); break; #endif } } }
void for_loop_led_task ( uint32_t initial_data ) { volatile uint32_t i = 0; LWGPIO_STRUCT led2; /* Initialize LED pin for output */ if (!lwgpio_init(&led2, BSP_LED2, LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_HIGH)) { printf("\nLED2 initialization failed.\n"); _task_block(); } /* Set LED pin to GPIO functionality */ lwgpio_set_functionality(&led2, BSP_LED2_MUX_GPIO); while(1) { /* Duration of this loop depends on actual core clock */ for (i = 0; i < 800000; i++) {}; /* To let the idle task run too */ _time_delay (50); /* Toggle led 2 */ lwgpio_toggle_value(&led2); } }
/*TASK*---------------------------------------------------------- * * Task Name : blink_led_task * Comments : * Set up LED and button. * When user presses a button this task blinks the LED and prints * out the number of times the system timer interrupt occurred. * If the button is pressed again, the LED is turned off and * the number of times the system timer interrupt occurred * is also printed out. *END*-----------------------------------------------------------*/ void blink_led_task ( uint32_t initial_data ) { /* Initialize led */ init_led((void *)(&led1)); /* Initialize button 1 */ init_interrupt_btn((void *)(&btn1)); while(1) { if(TRUE == btn_pressed) { if (TRUE == prv_btn_pressed) { prv_btn_pressed = FALSE; printf("\nLed starts blinking at tick No. = %d\n", num_tick); } lwgpio_toggle_value(&led1); _time_delay(200); } else if (FALSE == prv_btn_pressed) { prv_btn_pressed = TRUE; printf("\nLed is off at tick No. = %d\n", num_tick); lwgpio_set_value(&led1, LWGPIO_VALUE_HIGH); } } }
void for_loop_led_task ( uint_32 initial_data ) { uint_32 i = 0; LWGPIO_STRUCT led2; /* Initialize LED pin for output */ if (!lwgpio_init(&led2, BSP_LED2, LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_HIGH)) { printf("\nLED2 initialization failed.\n"); _task_block(); } /* Set LED pin to GPIO functionality */ lwgpio_set_functionality(&led2, BSP_LED2_MUX_GPIO); while(1) { for (i = 0; i < 800000; i++) {}; /* Toggle led 2 */ lwgpio_toggle_value(&led2); } }
static void button_isr ( void *pin ) { lwgpio_toggle_value (&led1); lwgpio_int_clear_flag (pin); _lwevent_set (&app_event, SW_EVENT_MASK); }
/*FUNCTION***************************************************************** * * Function Name : LWGPIO_TOGGLE_PIN_OUTPUT * Returned Value : TRUE if succesfull * Comments : * Toggles output pin state * *END*********************************************************************/ bool lwgpio_toggle_pin_output(LWGPIO_PIN_ID id) { LWGPIO_STRUCT tmp; if (lwgpio_init(&tmp, id, LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_NOCHANGE)) { lwgpio_toggle_value(&tmp); return TRUE; } return FALSE; }
void for_loop_led_task ( uint32_t initial_data ) { LWGPIO_STRUCT led2; int i = 0; /* Initialize LED pin for output */ if (!lwgpio_init(&led2, BSP_LED2, LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_HIGH)) { /* LED2 initialization failed.*/ _task_block(); } /* Set LED pin to GPIO functionality */ lwgpio_set_functionality(&led2, BSP_LED2_MUX_GPIO); while(1) { for (i = 0; i < 700000; i++) {}; /* toggle led 2 */ lwgpio_toggle_value(&led2); } }
void led_task ( uint32_t initial_data ) { LWGPIO_STRUCT led1; /* Initialize LED pin for output */ if (!lwgpio_init(&led1, BSP_LED1, LWGPIO_DIR_OUTPUT, LWGPIO_VALUE_HIGH)) { /* LED1 initialization failed. */ _task_block(); } /* Set LED pin to GPIO functionality */ lwgpio_set_functionality(&led1, BSP_LED1_MUX_GPIO); while(1) { _time_delay (500); /* toggle led 1 */ lwgpio_toggle_value(&led1); } }