www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD an M16C


Autor: Benedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin gerade ziemlich am Verzweifeln:
Am Datenbus des M16C habe ich ein 320x240 LCD mit SED1335
angeschlossen.

Das LCD initialisiert, aber gelöscht wird es nicht, obwohl am Ende der
Initialisierung der komplette Speicher mit 0 beschrieben wird.

Ich habe alles jetzt schon dutzende mal überprüft, und bin eigentlich
der Meinung, dass die Software OK ist.
Die Hardware ist auch OK, das habe ich auch schon mehrmals überprüft.
Das seltsamste ist aber, dass der Controller bis zur for Schleife alles
einwandfrei ausführt, aber aus irgendeinem Grund alles ab hier
ignoriert, bzw. alles was danach kommt. Oder er hängt sich auf.
Aber warum ?

Autor: Benedikt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hier der Rest vom Programm

Autor: Tobias Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist du dir sicher, dass die Timings des LCDs eineghalten werden?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das war auch mein erster Gedanke. Der Controller läuft mit <1MHz,
das sollte reichen...

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab den Fehler jetzt gefunden:
Da der uC bei jeder Schleife und auch beim Rücksprung von jedem
Unterprogramm abgestürzt ist, kam ich drauf, dass das interne RAM nicht
funktioniert.
Im Processor Mode Register war ein Reserved Bit gesetzt, welches es nur
beim 626 gibt. Beim 624 muss es auf 0 gesetzt werden...
Schon merkwürdig was diese reserved Bits an Fehler verursachten: Setzt
man das PLL bit beim 624 funktionieren die ADCs nicht...

Allerdings kotzt mich der Compiler an, der scheinbar einige Fehler
hat:
Wenn ich diesem Unterprogramm eine 0 übergebe müssten doch alle
Festplattenregister mit 0 beschrieben werden, außer dem ersten in dem
eine 1 stehen sollte. Auf dem LCD sollte dasselbe erscheinen. Oder irre
ich mich da ?

void SetCHS (unsigned long LBAAdresse)
    {Check_Busy ();
    IDE_Sector=(LBAAdresse%NumSectors)+1;
    IDE_Device=(LBAAdresse/NumSectors)%NumHeads;
    IDE_CylinderLow=(LBAAdresse/NumSectors/NumHeads)&255;
    IDE_CylinderHigh=(LBAAdresse/NumSectors/NumHeads)/256;

    DispBCD (6, 3, 5, (LBAAdresse%NumSectors)+1);
    DispBCD (7, 3, 5, (LBAAdresse/NumSectors)%NumHeads);
    DispBCD (8, 3, 5, (LBAAdresse/NumSectors/NumHeads)&255);
    DispBCD (9, 3, 5, (LBAAdresse/NumSectors/NumHeads)/256);
    DispBCD (10, 3, 5, LBAAdresse);
    }

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.