Skip to content

Commit

Permalink
Merge pull request #81 from bogiton/master
Browse files Browse the repository at this point in the history
LED refactoring and cleanup
  • Loading branch information
iceman1001 authored Mar 5, 2019
2 parents 34b770c + 9f755b8 commit c4b1753
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 115 deletions.
26 changes: 0 additions & 26 deletions Firmware/Chameleon-Mini/Chameleon-Mini.c
Original file line number Diff line number Diff line change
@@ -1,41 +1,16 @@
#include "Chameleon-Mini.h"

void led_mode(void) {
CARDHEIGHSetOff(LED_ONE);
CARDHEIGHSetOff(LED_TWO);
CARDHEIGHSetOff(LED_THREE);
CARDHEIGHSetOff(LED_FOUR);
CARDLOWSetOff(LED_FIVE);
CARDLOWSetOff(LED_SIX);
CARDLOWSetOff(LED_SEVEN);
CARDLOWSetOff(LED_EIGHT);

switch(GlobalSettings.ActiveSetting) {
case 0: CARDHEIGHSetOn(LED_ONE); break;
case 1: CARDHEIGHSetOn(LED_TWO); break;
case 2: CARDHEIGHSetOn(LED_THREE); break;
case 3: CARDHEIGHSetOn(LED_FOUR); break;
case 4: CARDLOWSetOn(LED_FIVE); break;
case 5: CARDLOWSetOn(LED_SIX); break;
case 6: CARDLOWSetOn(LED_SEVEN); break;
case 7: CARDLOWSetOn(LED_EIGHT); break;
default: break;
}
}

int main(void) {
SystemInit();
MemoryInit();
SettingsLoad();
LEDInit();
CARDInit();
ConfigurationInit();
TerminalInit();
RandomInit();
ButtonInit();
AntennaLevelInit();
SystemInterruptInit();
led_mode();

while(1) {
TerminalTask();
Expand All @@ -46,7 +21,6 @@ int main(void) {
RandomTick();
TerminalTick();
ButtonTick();
led_mode();
LEDTick();
}
}
Expand Down
4 changes: 0 additions & 4 deletions Firmware/Chameleon-Mini/Chameleon-Mini.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
#include <avr/interrupt.h>
#include <avr/power.h>



#include "System.h"
#include "Memory.h"
#include "LED.h"
Expand All @@ -21,7 +19,5 @@
#include "AntennaLevel.h"
#include "Settings.h"
#include "sp_driver.h"
#define CHAMELEON_MINI_VERSION_STRING "Old_Driver_2016"

#endif //CHAMELEON_MINI_H

58 changes: 58 additions & 0 deletions Firmware/Chameleon-Mini/LED.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,61 @@
#include "LED.h"

uint8_t LEDLowPulseMask = 0, LEDHighPulseMask = 0;

inline
void LEDMode(void) {
LEDHighSetOff(LED_ONE);
LEDHighSetOff(LED_TWO);
LEDHighSetOff(LED_THREE);
LEDHighSetOff(LED_FOUR);
LEDLowSetOff(LED_FIVE);
LEDLowSetOff(LED_SIX);
LEDLowSetOff(LED_SEVEN);
LEDLowSetOff(LED_EIGHT);

switch(GlobalSettings.ActiveSetting) {
case 0: LEDHighSetOn(LED_ONE); break;
case 1: LEDHighSetOn(LED_TWO); break;
case 2: LEDHighSetOn(LED_THREE); break;
case 3: LEDHighSetOn(LED_FOUR); break;
case 4: LEDLowSetOn(LED_FIVE); break;
case 5: LEDLowSetOn(LED_SIX); break;
case 6: LEDLowSetOn(LED_SEVEN); break;
case 7: LEDLowSetOn(LED_EIGHT); break;
default: break;
}
}

void LEDInit(void) {
LED_LOW_PORT.DIRSET = LED_LOW_MASK;
LED_HIGH_PORT.DIRSET = LED_HIGH_MASK;
}

inline
void LEDTick(void) {
LED_HIGH_PORT.OUTCLR = LEDLowPulseMask;
LEDLowPulseMask = 0;
LED_LOW_PORT.OUTCLR = LEDHighPulseMask;
LEDHighPulseMask = 0;
LEDMode();
}

inline
void LEDHighSetOn(uint8_t Mask) {
LED_HIGH_PORT.OUTSET = Mask;
}

inline
void LEDLowSetOn(uint8_t Mask) {
LED_LOW_PORT.OUTSET = Mask;
}

inline
void LEDHighSetOff(uint8_t Mask) {
LED_HIGH_PORT.OUTCLR = Mask;
}

inline
void LEDLowSetOff(uint8_t Mask) {
LED_LOW_PORT.OUTCLR = Mask;
}
95 changes: 10 additions & 85 deletions Firmware/Chameleon-Mini/LED.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@
#define LED_H

#include "Common.h"
#include "Settings.h"
#include <avr/io.h>

#define LED_HEIGH_PORT PORTA
#define LED_HIGH_PORT PORTA
#define LED_ONE PIN5_bm
#define LED_TWO PIN4_bm
#define LED_THREE PIN3_bm
#define LED_FOUR PIN2_bm
#define LED_HEIGH_MASK (LED_ONE | LED_TWO | LED_THREE| LED_FOUR)
#define LED_HIGH_MASK (LED_ONE | LED_TWO | LED_THREE| LED_FOUR)

#define LED_LOW_PORT PORTE
#define LED_FIVE PIN3_bm
Expand All @@ -25,88 +26,12 @@
#define LED_EIGHT PIN0_bm
#define LED_LOW_MASK (LED_FIVE | LED_SIX | LED_SEVEN| LED_EIGHT)

extern uint8_t LEDHighPulseMask, LEDLowPulseMask;

static inline
void LEDInit(void) {
LED_LOW_PORT.DIRSET = LED_LOW_MASK;
LED_HEIGH_PORT.DIRSET = LED_HEIGH_MASK;
}

static inline
void LEDLowSetOn(uint8_t Mask) {
LED_HEIGH_PORT.OUTSET = Mask;
}

static inline
void LEDLowSetOff(uint8_t Mask) {
LED_HEIGH_PORT.OUTCLR = Mask;
}

static inline
void LEDHighSetOn(uint8_t Mask) {
LED_LOW_PORT.OUTSET = Mask;
}

static inline
void LEDHighSetOff(uint8_t Mask) {
LED_LOW_PORT.OUTCLR = Mask;
}

static inline
void LEDLowToggle(uint8_t Mask) {
LED_HEIGH_PORT.OUTTGL = Mask;
}

static inline
void LEDHighToggle(uint8_t Mask) {
LED_LOW_PORT.OUTTGL = Mask;
}

static inline
void LEDLowPulse(uint8_t Mask) {
LEDLowPulseMask = Mask;
LED_HEIGH_PORT.OUTSET = Mask;
}

static inline
void LEDHighPulse(uint8_t Mask) {
LEDHighPulseMask = Mask;
LED_LOW_PORT.OUTSET = Mask;
}

static inline
void LEDTick(void) {
LED_HEIGH_PORT.OUTCLR = LEDLowPulseMask;
LEDLowPulseMask = 0;
LED_LOW_PORT.OUTCLR = LEDHighPulseMask;
LEDHighPulseMask = 0;
}

static inline
void CARDInit(void) {
LED_HEIGH_PORT.DIRSET = LED_HEIGH_MASK;
LED_LOW_PORT.DIRSET = LED_LOW_MASK;
}

static inline
void CARDHEIGHSetOn(uint8_t Mask) {
LED_HEIGH_PORT.OUTSET = Mask;
}

static inline
void CARDLOWSetOn(uint8_t Mask) {
LED_LOW_PORT.OUTSET = Mask;
}

static inline
void CARDHEIGHSetOff(uint8_t Mask) {
LED_HEIGH_PORT.OUTCLR = Mask;
}

static inline
void CARDLOWSetOff(uint8_t Mask) {
LED_LOW_PORT.OUTCLR = Mask;
}
void LEDInit(void);
void LEDTick(void);
void CARDInit(void);
void LEDHighSetOn(uint8_t Mask);
void LEDLowSetOn(uint8_t Mask);
void LEDHighSetOff(uint8_t Mask);
void LEDLowSetOff(uint8_t Mask);

#endif /* LED_H */

0 comments on commit c4b1753

Please sign in to comment.