www.mikrocontroller.net

Forum: Projekte & Code einfacher serieller Debugger für ATMega16


Autor: Johann Uhrmann (johannuhrmann) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

anbei ein kleines Testprogramm für den ATMega16. Es ist aus der Not
heraus entstanden, um ein einfaches Durchmessen von Schaltungen zu
erlauben.

Features:
 + Schalten von Port A-D als digitale Ein-/Ausgänge
 + Bedienung mit Terminalprogramm ohne Zusatzsoftware möglich
 + Benachrichtigung bei Signaländerung an ausgewählten Pins

Voraussetzungen:
 + der Mega16 muss natürlich in der Schaltung lauffähig sein
 + funktionierende UART-Schaltung (MAX232 o.ä.)

Bedienung:
 + hex-File auf den Controller laden
 + mit Terminalprogramm (z.B. Hyperterm) verbinden
 + jede Eingabe, die das Programm nicht versteht, wird mit einer
   Kurzanleitung quittiert
 + jedes erkannte Kommando wird sofort ausgeführt

Das beigefügte hex-File ist für 4MHz Takt ausgelegt und kommuniziert
dann mit 19200 Baud, 8 Bit, Even Parity, 1 Stop bit.
Überwachte Eingänge werden bei 4MHz 100x pro Sekunde geprüft.

Vielleicht hilft's dem ein oder der anderen ;)

Grüße,

Hans

Autor: FeeJai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr schön! Konnt ich so direkt bei mir einsetzen. Weiter so! Felix

Autor: Johann Uhrmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

erstmal Danke für das Lob, Felix.

Anbei ein kleines Update:

- keine nervtötenden Compiler-Warnings mehr (hoffentlich)
- ein kompletter Port läßt sich jetzt auf einmal setzen
  z.B.: "out pc=ff" um Port C komplett auf high zu setzen

Grüße,

Hans

P.S.:
Hatte ich ein Forenlogin? Gibt es sowas wie Password-Recovery?

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

Bewertung
0 lesenswert
nicht lesenswert
Ein kleiner Tip:
Du musst in C nicht solch lange 'Monsterstrings' in einer Zeile
basteln.
In C gibt es ein nettes Feature:
Der Compiler muss 2 aufeinanderfolgende Zeichenketten, die
nur durch Whitespace (Leerzeichen, Tab, CR) getrennt sind,
zusammenfassen.

D.h. ob du
   "dies ist ein langer String"
oder
   "dies " "ist " "ein " "langer " "String"
oder (und jetzt kommts)
   "dies "
   "ist "
   "ein "
   "langer "
   "String"

schreibst, ist Jacke wie Hose. Kommt immer aufs selbe hinaus.

Damit kannst Du aber machen:

const prog_char help[] =

  "\r\nAVR-Diagnose"
  "\r\n============"
  "\r\n"
  "\r\nKommandos:"
  "\r\n\tDISPLAY - zeigt den aktuellen Status der PINS an"
  "\r\n\tWATCH   - ueberwacht einen einzelnen Pin oder einen"
                  "Port (z.B. WATCH PB0 oder WATCH PD)"
  "\r\n\tUNWATCH - beendet die Ueberwachung eines Pins oder
Ports"
  "\r\n\tOUT     - schaltet einen Pin auf Ausgang und legt das "
                  "angeg. Signal an (z.B. OUT PB7 1)"
  "\r\n\tOUT     - schaltet einen kompletten Port als Ausgang und
"
                  "legt den Wert an (z.B. OUT PB=7F)"
  "\r\n\tIN      - schaltet den angegebenen Pin oder Port als "
                  "Eingang OHNE internen Pull-Up"
  "\r\n\tINPU    - schaltet den angegebenen Pin oder Port als "
                  "Eingang MIT internem Pull-Up"
  "\r\n";


Über den Unterschied in der Lesbarkeit (und damit Wartbarkeit)
brauchen wir, glaub ich, nicht diskutieren. :-)

Autor: Johann Uhrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Tipp. Wieder einmal zeigt sich, dass man nie
auslernt.

Grüße,

Hans

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.