C Programmierung

Neue Frage »

Auf diesen Beitrag antworten »
MZ C Programmierung

Meine Frage:
Hallo ich habe gerade Probleme bei dieser Aufgabe und würde mich freuen wenn mir jemand Tipps geben kann.

Zum Test ist ein main-Programm zu schreiben, das die Funktionen aufruft und ihre korrekte Funktionsweise nachweist. Wo das sinnvoll ist, soll eine Funktion mehrfach mit korrekten und nicht korrekten Parameterwerten getestet werden (mehrere Testfa?lle).

Initialisiert PortA als Eingang mit aktivierten Pullup-Widersta?nden und PortB als Ausgang, schaltet alle LEDs aus.
Hinweis: Inkludieren Sie avr/io.h.

void putByteLED_B(unsigned char byte);
Gibt einen 8-Bit-Wert auf die an PortB angeschlossenen LEDs aus. An Bit-Positionen mit dem Wert 1 soll die zugeho?rige LED leuchten.
Hinweis: Aufgrund der Beschaltung der LEDs auf dem Evaluationsboard leuchtet eine LED, wenn eine 0 auf das Port-Pin ausgegeben wird, an das sie angeschlossen ist.

unsigned char waitforKey_A()
Wartet auf eine Eingabe vom Benutzer u?ber die an PortA angeschlossenen Tasten. Dabei soll es egal sein, welche Taste bzw. ob mehr als eine Taste gedru?ckt wird. Gibt den invertierten Inhalt zuru?ck, den das PINA- Register bei Tastendruck hat (Tastencode), so dass der Ru?ckgabewert an der Position einer gedru?ckten Taste eine 1 entha?lt.
Hinweise:
Beachten Sie, dass PINA den Inhalt 0xff hat, wenn keine Taste gedru?ckt ist. Der Tastendruck ist erst abgeschlossen, wenn der Benutzer die Taste wieder losgelassen hat. Um eine Reaktion des Programms auf evtl. auftretendes Tastenprellen zu verhindern, sollte die Funktion mit Hilfe von delay_ms (Funktion der AVR-Lib-C) eine kurze Zeit abwarten ehe sie zuru?ckkehrt.
Hinweis: Inkludieren Sie util/delay.h.

unsigned char getKeyNum(unsigned char sw)
Wandelt den Tastencode sw (wie von waitforKey_A() geliefert), in die Nummer der gedru?ckten Taste um, so wie sie auf dem Evaluationsboard bezeichnet sind (niederwertigstes Bit entspricht der Taste 0, ho?chstwertiges Bit der Taste 7).
Hinweise:
Die Funktion liefert einen Wert zwischen 0 und 7 zuru?ck. Sollte mehr als eine Taste gedru?ckt worden sein, so liefert sie den Wert 255 (0xff) zuru?ck. Beispiele:
sw = 0x80 (Taste SW7 wurde gedru?ckt), getKeyNum() liefert den Wert 7 zuru?ck
sw = 0x03 (Tasten SW1 und SW0 wurden gedru?ckt), getKeyNum() liefert den Wert 255 zuru?ck


Meine Ideen:
Hat jemand Tipps wie ich schon mal die erste Funktion proggrammieren kann?
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »