Marco schrieb:
> Das ist der Programmcode den ich bereits ausprobiert habe.
> Allerdings kommt bei dem Befehl unit8_t immer eine Fehlermeldung.
Bei uint8_t handelt es sich um keinen Befehl, sondern um ein #define,
d.h., dass hier stellvertretend für den Variablentyp "unsigned char" ein
"uint8_t" angegeben wird, z.B.:
#define uint8_t usigned char
Das ist eine sog. Präprozessoranweisung, die vom Präprozessor vor dem
eigentlichen Übersetzen deines C-Code durch den Compiler ersetzt wird.
Dazu muss die o.g. #define-Anweisung aber in einem Headerfile deines
Codes vorhanden sein, damit der Präprozessor das "uint8_t" im Code auch
durch "unsigned char" ersetzen kann. Ist das nicht der Fall, bricht der
Vorgang ab und du bekommst eine Fehlermeldung.
Schreibe mal an den Anfang deiner Datei(en) "#include stdint.h", darin
sollte die Deklarationen enthalten sein. Siehe hier:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial (such mal
danach)
Dir scheinen die einfachsten Grundlagen der C-Programmierung zu fehlen,
es schadet also nichts, das AVR-Tutorial hier zum GCC mal zu studieren,
da lernst du eigentlich das Meiste dessen, was du für deine Aufgabe
brauchst.
Und noch was: du sendest hier kein halbes Bit, sondern ein halbes Byte
zweimal hintereinander. Das macht man, wenn man bei dem von dir
verwendeten Display statt 8 Portpins nur 4 nutzen möchte, um am
Controller 4 Portpins eben für andere Zwecke nutzen zu können. Da das
Display dies erlaubt, was nicht selbstverständlich ist, sendest du eben
statt eines ganzen Bytes 2x 4 Bits, was ergo 8 Bits = 1 Byte ergibt.