void LED_1_init( void ) { #if defined(__AVR_ATmega2561__) || defined(__AVR_ATmega644P__) LED_1_DDR |= ( 1<<LED_1_PIN ); LED_Register ( LED_1_ON, LED_1_OFF, LED_1_TOGGLE ); LED_1_OFF (); #endif }
/******************************************************************** Light the indicator LEDs to show the bit pattern specified. INPUT: result : the uint8_t to show (note only 1/2 of this can be shown at a time) mHiNibble : TRUE => show the upper nibble FALSE => show the lower nibble ********************************************************************/ void protected_show_uint8_t( uint8_t result, uint8_t mHiNibble ) { if (mHiNibble) { if ((result & 0x80)>0) LED_4_ON() else LED_4_OFF(); if ((result & 0x40)>0) LED_3_ON() else LED_3_OFF(); if ((result & 0x20)>0) LED_2_ON() else LED_2_OFF(); if ((result & 0x10)>0) LED_1_ON() else LED_1_OFF(); } else { if ((result & 0x08)>0) LED_4_ON() else LED_4_OFF();
void led_off(uint8_t mindex) { switch(mindex) { case 0: LED_1_OFF(); break; case 1: LED_2_OFF(); break; case 2: LED_3_OFF(); break; case 3: LED_4_OFF(); break; default: break; } }
/* Want a way to : USE LED_1 & LED_2 when in System_LED>0 mode AND MOTOR_OFF! Do not disturb moving motors even if system mode is turned on! DDR will always be output for both and is set in the pwm_init() code. */ void init_leds() { // OUTPUTS: System_LED_Control.systemMode = SYSTEM_LED_MODE_DEVICE; System_LED_Control.pattern = 0; // DDR =1 ==> output for Atmel AVRs LED_1_DDR |= (1<<LED_1); LED_2_DDR |= (1<<LED_2); LED_3_DDR |= (1<<LED_3); LED_4_DDR |= (1<<LED_4); LED_1_OFF(); LED_2_OFF(); LED_3_OFF(); LED_4_OFF(); }