www.mikrocontroller.net

Forum: Compiler & IDEs Wie Debugging Mega8(88) WinAVR und Parallel-ISP ...


Autor: Hobbytroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe aktuell folgendes Problem.
An einen Mega8(88) habe ich eine der billigen Matrixtastaturen von 
Pollin mit einem Widerstandsnetzwerk angeschlossen.
Das hängt an PC0 und wird in einem Timer-IRQ alle Naselang mit 
"händischer" ADC-Wandlung abgefragt (wegen debouncing).
Nun müßte ich die Werte für die einzelnen Tasten bzw. 
Tastenkombinationen erfahren, um die dann als #define ins Programm 
einzupflegen.
Also habe ich mir gedacht, das wenn ich das Programm debugge und nach 
der debouncing Routine anhalte, habe ich jeweils den Wert der Tasten.
1. Funktioniert Chip-Debugging via billigstem ISP (Parallelport 
AVR-Dude) ?
2. Gibt es ein Tutorial für's debuggen mit WinAVR ?
3. Ist meine Methode überhaupt die sinnvollste ?
Danke für jede Hilfe ;-)

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, echtes Debuggen ist nur mit einem JTAG-Interface möglich. Ein 
ISP-Adapter kann nur zum Programmieren verwendet werden.

Du kannst Dich mehr schlecht als recht mit gelegentlichen 
"Debug-Ausgaben" behelfen, aber die verändern (->Heisenberg!) das 
Programm teilweise so sehr, daß das eigentliche Problem durch geändertes 
Timingverhalten verdeckt werden kann.

Für Deine Anwendung aber müsste ein Programm genügen, daß zyklisch die 
Tastatur abfragt und die ermittelten Werte per serieller Schnittstelle 
irgendwohin ausgibt ... ein echter Debugger ist hier nicht zwingend 
erforderlich.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly wrote:
> Nein, echtes Debuggen ist nur mit einem JTAG-Interface möglich. Ein
> ISP-Adapter kann nur zum Programmieren verwendet werden.

Nur das ein mega88 kein JTAG hat, dafür aber Debug Wire. (-> AVR Dragon)

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An der Kernaussage, daß mit einfachen ISP-Adaptern kein Debuggen möglich 
ist, ändert das aber nicht wirklich viel ...

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly wrote:
> An der Kernaussage, daß mit einfachen ISP-Adaptern kein Debuggen möglich
> ist, ändert das aber nicht wirklich viel ...

Ich habe auch nie was anderes gesagt, sondern nur die Behauptung 
wiederlegt, das Debugging NUR mit JTAG möglich ist.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wollen wir uns wirklich über Spitzfindigkeiten streiten?
"Debug Wire" würde ich recht schlampig als "pinsparendes JTAG-Derivat" 
bezeichnen - jedenfalls als ein Debuginterface, das den Einsatz 
spezieller dafür geeigneter Hardware voraussetzt.

Also: Frieden?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly wrote:
> Wollen wir uns wirklich über Spitzfindigkeiten streiten?
> "Debug Wire" würde ich recht schlampig als "pinsparendes JTAG-Derivat"
> bezeichnen - jedenfalls als ein Debuginterface, das den Einsatz
> spezieller dafür geeigneter Hardware voraussetzt.

Ich finde DebugWire nicht schlecht. JTAG habe ich eigentlich noch nie 
verwendet, da dies zuviele Pins braucht. Debug Wire braucht aber keine 
Pins, nur eben den sowiso vorhandenen Reset. Vor allem zum Debuggen von 
8Pin AVRs und anderen ohne UART finde ich das durchaus eine nette Idee.

> Also: Frieden?
Ja.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schön.

Das "schlampig" bezog sich übrigens nicht auf Debugwire, sondern auf 
meine Art, es salopp als "JTAG-Derivat" einzuordnen.

Ähnlich sehe ich es beim MSP430 und dem dort vorhandenen Spy 
BiWire-Interface ...

Ohne etwas derartiges (JTAG mit vielen Pins, DebugWire, Spy BiWire ...) 
würde ich jedenfalls nicht mehr mit einem µC arbeiten wollen.

Autor: Hobbytroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK,
das ist also 'nen Satz mit X.
Gut dann händisch.
Ich habe jetzt mal die Spannungswerte über die einzelnen Spannungsteiler 
errechnet.
Da die Pollintastatur über zwei Eingangspins verfügt, die je nachdem 
welches selektiert ist einen der sieben Ausgangspins schaltet, habe ich 
die einfach mit einem zusätzlichen Widerstand gebrückt.
So das sich jetzt z.B. folgende Werte ergeben:
Taste 2 Pin1 (10 K) und Pin7 (100 Ohm) ca. 0,05 V bei Aref=VCC=5V
Taste 3 Pin2 (10 K + 1 K = 11 K) und Pin7 (100 Ohm) ca. 0,045 V
Und da liegt jetzt mein Problem.
Ist der ADC des Mega8 genau genug die 0,005 V festzustellen, oder sollte 
ich lieber alle Werte im Kiloohm Bereich wählen ?
Ich habe halt wild in die Krabbelkiste gegriffen und nur darauf geachtet 
nicht zweimal den gleichen Widerstand zu haben ;-)
Bei 1 K statt 100 Ohm wären es ja 0,5 V und 0,45 V also 0,05 V 
Unterschied.
Im Datenblatt steht ja die Formel welcher Wert der ADC erzeugt.
Nur sind das ja "krumme" Zahlen.
0,05V Input gegen 5V Ref = 10,24
0,045V = 9,216
Was kommt dann raus ?
10 und 9 ?
Das wäre dann wohl wegen der Toleranzen insgesamt zu wenig Abstand.
Oder mache ich hier einen Denkfehler ?
Wäre nett wenn mir jemand sagen könnte was der ADC nun daraus macht und 
wie ich sinnvollere Werte erhalten kann.
Bei 1K wären es ja 92 und 102, da könnte ich dann besser Toleranzen 
berücksichtigen.
Danke.

Autor: Hobbytroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehe gerade meinen Fehler uuups ;-)
Der 1K wird ja jeweils auf den R2 Anteil im Spannungsteiler angerechnet.
Also bekomme ich einmal 0,05 V und einmal 0,49 V also 10 und 100, sollte 
also so funktionieren.
Oder hab' ich noch was wesentliches übersehen ?
Danke.

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.