www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie kann ich etwas ohne Display abfragen?


Autor: LuciPavadro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe hier einen AVR in Betrieb, der später in eine Baugruppe gesetzt 
werden soll und eigentlich nur unsichtbar etwas macht. Es gibt also kein 
Bedienteil oder ähnliches.

Um meinen Code zu testen brauch ich aber eine Möglichkeit, Daten bzw. 
Zahlen auszulesen.

Gibt es eine Möglichkeit im neusten AVR-Studio nicht nur den Code-Syntax 
zu testen, sondern auch einen Output darstellen zu lassen? Ich will 
keine Schaltung simulieren, sondern nur Variablen/Ergebnisse von 
Rechnungen ausgeben, die intern im AVR stattfinden...und das ohne, dass 
ich den kompletten Code für einen Test umschreiben muss.

Soein Echtzeit-Display welches den Inhalt einer Variable anzeigt oder 
so...?

thx!

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm...für sowas gibts doch Debugger....

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wir haben uns zu dem Zweck einen "Displaycontroller" gebaut, der mit 
einem Signal auf einem einzigen Pin (gegenüber Masse) gefüttert wird und 
sämtliche ASCII-Zeichen auf dem Display anzeigen kann (auch HEX und DEZ 
direkt) und ein paar LEDs ansteuert. Ein Pin ist an jedem AVR noch frei, 
so daß auch InSystem Debuginformationen angezeigt werden können. Die 
Signale generiert eine kleine Routine im Programm des zu debuggenden 
Controllers.

Autor: Jonas G. (jonny)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das heißt ich schicke dem LCD 0b00001000 und es zeigt mir eine 8 (dez.) 
an?
Das kann man ja öffters mal gebrauchen. Falls man mal nur ein paar 
integer-Werte usw. testen muss.

jonas

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Falls du an der UART noch das TX-Pin frei hast, kannst du auch direkt 
zum PC senden. Vorrausgesetzt der AVR hat eine UART.

MfG Spess

Autor: Jonas G. (jonny)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
senden würd auch einfach mit nem softuart klappen

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wir haben das mit unserem DisplayController so gelöst, daß wir ein 
spezielles Startbit senden, dann 4 Bit zum Anzeige-Typ (also Hex, 
Dezimal oder reines ASCII), dann 8 Bit Adresse (also wo die Anzeige auf 
dem Display erscheinen soll) und 8 Bit Daten. Diese Frame-Aufbereitung 
wird von der Routine im zu debuggenden Controller erledigt. Die 
einzelnen Programm-Routinen, die es zu debuggen gilt, geben halt die 
4Bit und 2x 8Bit an die Ausgabe-Routine und rufen sie auf. Wenn man das 
Debugging nicht mehr braucht, weil das Programm komplett ist und 
funktioniert, werden diese Aufrufe deaktiviert. Da wir sehr oft In 
System programmieren, kann man die Ausgabe über die sowieso aufgebrachte 
ISP-Schnittstelle routen. Es werden dann keine zusätzlichen Pins oder 
Testpunkte auf der Platine benötigt. Wenn man den MISO-Pin des zu 
debuggenden Controllers nutzt, muß man nicht mal das Programmiergerät 
abziehen, der Displaycontroller und der Programmer teilen sich dann den 
Pin.

Autor: Roland Praml (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mir ähnliches gebaut, mein "Displaycontroller" ist lediglich ein 
74HC595 Schieberegister.

Ein 4x20 LCD wird im 4Bit-Mode betrieben, Q0-Q3 vom Schieberegister ist 
mit dem unteren Nibble verbunden. EN und RS mit Q4/Q5, R/W  mit +5V 
(nur schreiben ist möglich)

Data-In, Clock und Latch gehen auf die "Programmierpins" SCK/MISO/MOSI.

Weiterhin ist das untere Nibble (Q0-Q3) jeweils mit einem Taster und 330 
Ohm Widerstand mit Data-In verbunden.

Ein LCD-Write funktioniert dann so, dass einfach nacheinander die Daten 
seriell raus geschoben werden und parrallel am SR anliegen, so dass es 
das LCD versteht.

Ein Readkeys schickt zuerst ein 0x0 an Q0-Q3, schaltet dann den Data-Pin 
auf Input um mit Pullup. Ist nun eine Taste gedrückt, so wird der 
entsprechende Q-Pin mit dem Data-Pin gebrückt und auf low gezogen.
In einem weiteren Schritt muss durch anlegen entsprechender Bitmuster 
noch abgefragt werden, welche der 4 Tasten es war.

Da der EN-Pin des LCD's immer Low ist, macht es auch nichts, wenn hier 
an den Bits "rumgefummelt" wird.

Es werden hier allerdings drei Leitungen benutzt, ich verwende hierzu 
die Programmierleitungen und das Gerät kann auch parallel zum Programmer 
angeschlossen bleiben.

Die Textausgabe ist zwar nicht die flotteste, da insbesondere die 
Tastenabfrage mit vielen Delays gespickt ist, damit es funktioniert. Zum 
Debuggen reicht es aber vollkommen aus.

Gruß
Roland

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unser "Controller" hat noch eine UART-Anbindung mit formatiertem ASCII 
(n-Zeichen pro Zeile mit CR/LF) zur Klartextausgabe oder zum Loggen mit 
einem Terminalprogramm. Wir haben das Ding liebevoll "Sniffer" getauft 
;-). Inzwischen hat jeder im Labor einen neben seinem STK500 stehen...

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.