www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Initialisierung in C HD44780


Autor: Michael Reiterer (mreiterer)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://jump.to/fleury

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

Autor: Alban (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Reiterer (mreiterer)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Michael Reiterer (mreiterer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mvision

Autor: Michael Reiterer (mreiterer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
uC verwende ich den Atmel 89S53

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Reiterer (mreiterer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm und wie is es mit 89S53?

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Reiterer (mreiterer)
Datum:

Bewertung
0 lesenswert
nicht 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?!

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Reiterer (mreiterer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aha verstehe danke für die info und deine Hilfe

Autor: Frank Erdrich (erdi-soft)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Frank Erdrich (erdi-soft)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.