Forum: Mikrocontroller und Digitale Elektronik USART 7 - Segment Anzeige


von Atze M. (atzesm)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich hoffe ihr könnt mir weiter helfen. Nachdem ich nun seit 3 Wochen 
Recherche nicht selbst weiter komme, bin ich nun leider auf Hilfe 
angewiesen.
Leider haben mir ähnliche Beiträge im Forum nicht weiter geholfen.


Versuchsbeschreibung:

Ich habe mir folgende 4-digit 7 Segmentanzeige gekauft:
http://www.watterott.com/de/7-Segment-LED-Anzeige-blau-seriell
die ich nun über USART bereiben möchte. Dies hat sich allerdings als 
schwieriger herausstellt, als anfänglich gedacht. Ich benutze einen 
Atmega644 mit einem 20MHz Quarz. Mein Code findet ihr im Anhang.


Problembeschreibung:

Die Übertragung scheint zu funktionieren, da sich bei Befehlen, die ich 
über den USART sende die Anzeige verändern kann. Allerdings reagiert die 
Anzeige nicht wie in der Spezifikation 
(http://www.sparkfun.com/datasheets/Components/LED/7-Segment/SFE-0012-DS-7segmentSerial-v41.pdf).

Im Code sende ich die Bytes, die auch im Beispiel der Spezifikation 
verwendet wurden: (0x01)(0x02)(0x0A)(0x0B).

Hier springt die Anzeige (siehe angehangene Bilder). Egal wie welche 
Bytes ich sende, es werden nur Nullen angezeigt, jedoch ändern sich die 
angezeigten Stellen, die wiederum nur 0 anzeigen.

Ich hoffe ihr könnt mir helfen :)

Gruß


Mattias

von Atze M. (atzesm)


Lesenswert?

Kann mir keiner bei diesem Problem helfen? :/

von Michael H. (michael_h45)


Lesenswert?

wie schaun die fuse-einstellungen aus?

von Atze M. (atzesm)


Angehängte Dateien:

Lesenswert?

Die Fuses sind auf "Ext. Crystal Osc. 8.0- MHz; Start-up time: 16K CK + 
65 ms", wie im angehangenen Bild gesetzt.

Gruß


Mattias

von Michael H. (michael_h45)


Lesenswert?

findest du nicht, dass deine leds um einen faktor 8(!!!) zu langsam 
blinken?

von Atze M. (atzesm)


Lesenswert?

Also ich habe mal die delay-Anweisungen und das Test Blink 
herausgenommen und du hast Recht. Die Anzeige ist noch zu langsam, denn 
hier blinkt die jede Stelle ca alle 200 ms auf (sollte doch schneller 
gehen oder?!?) Ich habe aber keine Ahnung warum das so ist.
Hat jemand eine Idee?

Gruß


Mattias

von Helfer (Gast)


Lesenswert?

> findest du nicht, dass deine leds um einen faktor 8(!!!) zu langsam
> blinken?

Dickeren Zaunpfahl nehm: Häkchen bei CKDIV8 Fuse entfernen!

von Atze M. (atzesm)


Angehängte Dateien:

Lesenswert?

So habe jetzt das Häckchen entfernt. Die Anzeige ist jetzt wirklich sehr 
schnell unterwegs, funktioniert allerdings leider immer noch nicht.

Um eine konstante Anzeige zu bekommen habe ich mich entschieden 4mal 
0x0A zu senden. Allerdings azeigt die Anzeige im Betrieb egal welche 
Zeichen ich sende immer an der ersten Stelle 8 an (siehe Bild1). Die 
erste Stelle flackert merklich. Die restlichen Stellen bleiben aus. 
Jedoch ist hier das Auge anscheinend zu langsam, da man die zweite 
Stelle mit einer 0 angezeigt bekommt, wenn man auf Erase Device klickt 
(siehe Bild2).

Sehr eigenartig!

Kann man hier irgend was testen um der Fehlerspur zu folgen?

Gruß


Mattias

von Helfer (Gast)


Lesenswert?

Stimmt die Chemie^H^H^H Kommunikation der Geräte untereinander?

Wie sehen die Fuse-Einstellungen des AVRs (Atmega328P) auf dem Display 
aus? Welchen Taktgeber hat dieser AVR? Wenn interner RC, dann überlegen 
einen genaueren externen Taktgeber anzuschliessen.

Hast du den Sender (AVR) mal an einen PC angehängt (über RS232 
Pegelwandler) und in einem RS232 Terminalprogramm mitgeschnitten, 
was da so kommt? Sendet der Sender gültige Daten?

Hast du den Empfänger (Display) mal an einen PC angehängt (über RS232 
Pegelwandler) und in einem RS232 Terminalprogramm die Daten aus dem 
Datenblatt gesendet? Reagiert das Display?

von Atze M. (atzesm)


Lesenswert?

Ich glaub ich krieg nen Kolla...
3 Wochen lang probier ich alles mögliche aus... nix bringt.
Und jetzt, per Zufall... nehm ich die dumme Zeile:
//   uart_putc(0x76); // reset the display

raus und alles passt...

habe damit anscheinend mehr als nur die Baudrate reseted, sodass noch 
Parameter gefehlt haben...

Habt jedenfalls vielen vielen Dank für euer Engagement!

Gruß


Mattias

von Atze M. (atzesm)


Angehängte Dateien:

Lesenswert?

XD

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.