Forum: Mikrocontroller und Digitale Elektronik Initialisierung in C HD44780


von Michael R. (mreiterer)


Angehängte Dateien:

Lesenswert?

Ich komme einfach mit der Initialisierung nicht zusammen, Display
funktioniert einwandfrei, wenn die Initialisierung stattfindet
verschwinden alle schwarzen Kästchen die am Anfang sind für den
Kontrast einstellen.

Leider habe in einen Quellcode in C noch nicht gefunden meistens nur
Assembler.

Ich geh noch zur Schule und dies ist ein Projekt.

Danke schon jetzt für eure Hilfe

von Karl H. (kbuchegg)


Lesenswert?

http://jump.to/fleury

'AVR-Software' auswaehlen. Ein bischen runterscrollen:
'LCD library for HD44870 based LCD's'

von Alban (Gast)


Lesenswert?

Hast du mal auf der Seite: http://ulrichradig.de/ nachgeschaut?

Auch im Bereich Codesammlung hier im Forum solltest du was dies
bezüglich finden.

von Michael R. (mreiterer)


Lesenswert?

danke schon mal für eure antworten, nun brauch ich nur noch die
#include <avr/io.h>

von Karl H. (kbuchegg)


Lesenswert?

Die ist mit Deinem Compiler (sofern es sich um WinAvr handelt)
mitgekommen.
(Welchen verwendest Du eigentlich?)

von Michael R. (mreiterer)


Lesenswert?

mvision

von Michael R. (mreiterer)


Lesenswert?

uC verwende ich den Atmel 89S53

von Schoaschi (Gast)


Lesenswert?

ähm... mit welchen µC arbeitest du? Arbeitest du mit einem 8051er oder
einem AVR? Wenn du mit nem AVR arbeitest, dann kannst du µVision
vergessen.

Wenn du mit einem 8051er arbeitest, kannst du die avr/io.h
vergessen,weil du ja mit einem komplett anderen Controller arbeitest.

Das einmal fürs erste.

Also schreib mal welchen Controller du verwendest.

von Michael R. (mreiterer)


Lesenswert?

hmm und wie is es mit 89S53?

von Schoaschi (Gast)


Lesenswert?

Schau mal auf folgenden Seiten:

http://www.8052.com/codelib.phtml

http://www.doc.ic.ac.uk/~ih/doc/lcd/

http://www.c51.de/c51.de/Dateien/LCD.php?UIN=

Da sollte doch was dabei sein oder?

Willst du deinen Treiber selbst schreiben und dabei was lernen oder
willst du einfach nur das es funktioniert?

von Schoaschi (Gast)


Lesenswert?

Naja... ich hab mir mal dein c-File angesehen. da sind mir einige Sachen
aufgefallen.
1. Funktionien sollten immer oberhalb vom Main stehen.
2. was machst du mit den Variablen bb und ii? Sind meines erachtens
reiner Speicherverbrauch.
3. du solltest deine write-Funktion so machen, dass du auswählen kannst
ob du ins Steuerregister oder Datenregister schreiben willst.
4 Und ich glaube, dass dein Timing etwas zu schnell ist.

Das war mal das, was mir jetzt so aufgefallen ist auf die schnelle.

von Michael R. (mreiterer)


Lesenswert?

was ich eigentlich will ist einfach nur ne anfangsinitialisierung in C
vom HD44780 für 89S53

Für was brauch ich da nen Treiber?!

von Schoaschi (Gast)


Lesenswert?

naja mit treiber meine ich eine Funktion mit der du aufs LCD zugreifen
kannst. Mit der du das LCD initialisieren kannst und danach auch aufs
LCD schreiben kannst.

von Michael R. (mreiterer)


Lesenswert?

aha verstehe danke für die info und deine Hilfe

von Frank E. (erdi-soft)


Lesenswert?

@Schoaschi:

Die Funktionen brauchen keineswegs oberhalb der main() stehen. Michael
benutzt hier ja auch Funktionsprototypen, die dem Compiler sagen, dass
diese Funktion vorhanden ist.
Es ist natürlich Geschmackssache, wo man die Funktionen hinklatscht,
aber unterhalb der main() macht das für mich wesentlich mehr Sinn, weil
man so auf einen Blick alle Funktionen sieht, die man schon geschrieben
hat und dann auch gleich auf die main() kommt, ohne viel scrollen zu
müssen.

Noch besser wäre es natürlich, wenn man die Funktionen auslagern würde
und nur ne Header mit den Funktionsprototypen einbinden würde.

von Schoaschi (Gast)


Lesenswert?

Aha.. dankeschön. Dann dürfte ich das wohl mit den Interrupts
verwechselt haben. Diese müssen doch oberhalb vom main stehen oder
nicht? mir kommt vor ich habe das mal wo gelesen.

von Frank E. (erdi-soft)


Lesenswert?

Hmmm, ne, die ISRs dürfen auch unterhalb der main() stehen. Allerdings
rede ich bei den ISRs nur für den AVR-GCC.
Gut möglich, dass das andere Compiler anders machen oder wollen.
Aber obiges zu den Funktionen gilt für alle Compiler.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.