Forum: Mikrocontroller und Digitale Elektronik Debuggen mit Atmega 8


von Holler (Gast)


Lesenswert?

Ich wollte für ein Bastelprojekt für Einsteiger einen Atmega 8 
verwenden, unter anderem auch weil noch einige Muster im 
anfängerfreundlichem DIL-Gehäuse verfügbar sind. Austattung des uC 
spielt keine Rolle, es sollen nur ein Taster und LEDs dran.

Ich selbst habe noch einen JTAG ICE mk2 Debugger, den ich mal via debug 
wire benutzte, uC war ein ATXmega.

Meine Frage: wie debuggt mal sinnvoll in einem Atmega8? JTAG und DW kann 
der nicht, hilft mir da der MK2?
Es wäre für Anfänger schön, wenn man Einzelschritt oder Breakpoints 
realisieren könnte.

Muss ich zum Atmega88 wechseln, gibts den in DIL?

von Walter (Gast)


Lesenswert?

Holler schrieb:
> Muss ich zum Atmega88 wechseln, gibts den in DIL?

2x ja

von Frank K. (fchk)


Lesenswert?

Die Antwort lautet: gar nicht.

Der pinkompatible Mega88 hat wenigstens dW. Aber das ist ein Krampf. 
Nimm einen Mega324p oder 644p im DIL40, dann hast Du JTAG, und dann 
machts auch Spaß.

fchk

von Holler (Gast)


Lesenswert?

Ok, habe verstanden dass ich mit dem MK2 besser wechsele.

Und wie verwendet man den Mega8?
Ein ICE wäre übertrieben, kann man da nur blind den Code einspielen und 
hoffen dass man nichts übersehen hat?

von Genau (Gast)


Lesenswert?

Holler schrieb:
> kann man da nur blind den Code einspielen und
> hoffen dass man nichts übersehen hat?
Klar, einen Debugger braucht man eh nur in Ausnahmefällen. Es hat auch 
viele Projekte gegeben, bei denen ich ihn auch nicht mal vermisst hätte.

von Karl H. (kbuchegg)


Lesenswert?

Holler schrieb:
> Ok, habe verstanden dass ich mit dem MK2 besser wechsele.
>
> Und wie verwendet man den Mega8?
> Ein ICE wäre übertrieben, kann man da nur blind den Code einspielen und
> hoffen dass man nichts übersehen hat?

Solange sich dein Code nur um Taster und LED dreht, kann man das alles 
wunderbar auch im Simulator debuggen. Dazu muss man nicht auf den 
konkreten µc gehen. Im Simulator gibt es simulierte Ports. Wenn du einen 
Taster drücken willst, dann klickst du auf den simulierten Portpin und 
lässt dein Programm weiterlaufen (single step). Wenn eine Ausgabe an 
einen Port kommt, dann siehst du in der simulierten Portansicht wie 
dieses Bit von 0 auf 1 oder umgekehrt wechselt.

Allerdings: Taster und Led sind jetzt sooo kompliziert auch wieder 
nicht, als das man das Programm nicht einfach auf den Mega laden und 
ausprobieren könnte. Man schreibt ja ein Programm sowieso nicht in einem 
Rutsch runter sondern beginnt erst mal ganz einfach und erweitert dann 
laufend den Code bis man beim Ziel angekommen ist. Das funktioniert 
eigentlich ziemlich gut und ist in der Praxis ein viel kleineres Problem 
als du jetzt denkst.

von Holler (Gast)


Lesenswert?

Ok, mit dem ATMega wäre es für einen Anfänger wenig transparent was da 
passiert.

Nochmal ne Frage an Frank k.: warum ist dW ein Krampf?

Wie gesagt, ich nutzte es vor 2 Jahren in einem ATXmega, allerdings 
blieb der uC selten am Breakpoint stehen, meist rannte der noch etliche 
Befehle weiter. Meinst du das?

von Frank K. (fchk)


Lesenswert?

Holler schrieb:
> Ok, mit dem ATMega wäre es für einen Anfänger wenig transparent was da
> passiert.
>
> Nochmal ne Frage an Frank k.: warum ist dW ein Krampf?
>
> Wie gesagt, ich nutzte es vor 2 Jahren in einem ATXmega, allerdings
> blieb der uC selten am Breakpoint stehen, meist rannte der noch etliche
> Befehle weiter. Meinst du das?

dW ist nur zum debuggen. Normalerweise hast Du ja einen Zyklus 
Compilieren, Flashen + Debuggen, Bug im Editor ändern, Compilieren...
Flashen und Debuggen ist normalerweise ein Arbeitsschritt. Bei dW musst 
Du aber per ISP Dein Binary flashen, dW anschalten, debuggen, dW 
ausschalten, neues Binary flashen,... Das macht das ganze ziemlich 
nervig.

Die XMegas nutzen PDI, das ist wieder was anderes.

Da lobe ich mir doch die PICs. Da kannst Du alle Modelle (es gibt ca 
1000) von den kleinen 8 Bittern bis hin zu den 200 MHz 32 Bit PICs mit 
dem gleichen Interface (ICSP) programmieren und bis auch ganz wenige 
Ausnahmen auch debuggen. Und für die Ausnahmen gibts Debug Header, damit 
das dort auch geht.

fchk

von Christian D. (chris83)


Lesenswert?

Frank K. schrieb:
> Bei dW musst
> Du aber per ISP Dein Binary flashen, dW anschalten, debuggen, dW
> ausschalten, neues Binary flashen,... Das macht das ganze ziemlich
> nervig.

Das kann ich nicht bestätigen. Mit dem dw kann man genau so gut flashen.

von spess53 (Gast)


Lesenswert?

Hi

> Bei dW musst
>Du aber per ISP Dein Binary flashen, dW anschalten, debuggen, dW
>ausschalten, neues Binary flashen,... Das macht das ganze ziemlich
>nervig.

Das ist falsch.

MfG Spess

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.