avr-gcc SysLED

Die Library SysLED dient zur Ansteuerung von bis zu 8 LEDs. Man kann die LEDs ein- und ausschalten oder mit einer vorgegebenen Frequenz blinken lassen. Dabei besteht die Möglichkeit, der Polarität der LEDs zu berücksichtigen, also ob sie bei einem High Pegel am Port Leuchten oder bei einem Low Pegel. Der Befehl sysled_on schaltet die LED dabei immer ein, unabhängig wie sie angeschlossen ist. Man kann SysLED auch für anderen Funktionen wie z.B. die Ansteuerung von Relais verwenden.

Alle LEDs müssen sich an einem Port befinden. Zwischen den LEDs dürfen keine Lücken sein. Bei weniger als 8 LEDs darf die erste LED an einem beliebigen Port liegen. Blinkrate und Polarität werden in der config.h definiert.

SysLED verwenden

config.h

/*------------------------------------------------------------------------------
 * Defines for SysLED
 *----------------------------------------------------------------------------*/
#define SYSTICK_SYSLED                // uncomment this line to use SysLED
#define SYSLED_PORT     PORTB        // Port Register of the SysLED Port
#define NO_SYSLED       1            // Number of SysLEDs
#define FIRST_SYSLED    PB0          // First SysLED on the port
#define SYSLED_LOGIC    0b00000001   // 1=positive logic, 0=negative logic
#define SYSLED_RATE     100          // Flash rate in Systicks
  • SYSTICK_SYSLED: Möchte man die SysLED Library verwenden, muss der Kommentar vor SYSTICK_SYSLED entfernt werden. Möchte man SysLED nicht verwenden muss die Zeile auskommentiert werden.
  • SYSLED_PORT definiert den Port, an dem die LEDs angeschlossen werden.
  • NO_SYSLED definiert die Anzahl der LEDs.
  • FIRST_SYSLED definiert das erste Portbit, an dem eine LED angeschlossen ist.
  • SYSLED_LOGIC legt fest, ob eine LED mit positiver Logik angesteuert werden soll oder mit negativer Logik.
  • SYSLED_RATE definiert die Blinkrate, mit der die LEDs blinken sollen.

Makefile

Verwendet man das Makefile, müssen die Dateien systick.c und sysled.c in die Liste der Sourcefiles eingetragen werden.

# List C source files here. (C dependencies are automatically generated.)
SRC =  $(TARGET).c
SRC += $(Ext_lib_path)systick.c
SRC += $(Ext_lib_path)sysled.c

SConstruckt

Bevorzugt man Scons, müssen die Dateien systick.c und sysled.c in der Variable src eingefügt werden

# Add all additional source files to compile
src="""
        obj/systick.c
        obj/sysled.c
        """

Funktionen

sysled_init()

void sysled_init();

sysled_init() initialisiert das SysLED Modul. Die Funktion wird von systick_init() automatisch aufgerufen, wenn man SysLED verwendet.

sysled_on()

void sysled_on(uint8_t led);

Die Funktion sysled_on() schaltet einzelne LED ein, unabhängig von positiver oder negativer Logik. Die Funktion nimmt ein Byte vom Typ uint8_t mit der gewünschten LED Nummer (0-7) entgegen. Dabei entspricht 0 der ersten LED, auch wenn sich diese nicht auf dem Portbit 0 befindet.

sysled_off()

void sysled_off(uint8_t led);

Die Funktion sysled_off() schaltet einzelne LED aus, unabhängig von positiver oder negativer Logik. Die Funktion nimmt ein Byte vom Typ uint8_t mit der gewünschten LED Nummer (0-7) entgegen. Dabei entspricht 0 der ersten LED, auch wenn sich diese nicht auf dem Portbit 0 befindet.

sysled_allon()

void sysled_allon(void);

Die Funktion sysled_allon() schaltet alle LEDs ein, unabhängig von positiver oder negativer Logik.

sysled_alloff()

void sysled_alloff(void);

Die Funktion sysled_allffn() schaltet alle LEDs aus, unabhängig von positiver oder negativer Logik.

sysled_flash()

void sysled_flash(uint8_t led);

Die Funktion sysled_flash() lässt die angegebene LED blinken. Die Funktion nimmt ein Byte vom Typ uint8_t mit der gewünschten LED Nummer (0-7) entgegen. Dabei entspricht 0 der ersten LED, auch wenn sich diese nicht auf dem Portbit 0 befindet.

sysled_enable()

void sysled_enable(uint8_t stat);

Die Funktion sysled_enable() aktiviert oder deaktiviert das SysLED Modul. Die Funktion nimmt die Parameter TRUE oder FALSE entgegen.

/www/htdocs/w00645de/dokuwiki/data/pages/mikrocontroller/avr/avr-gcc-library/sysled.txt · Zuletzt geändert: 2009/05/04 13:00 von burli
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0