Atmega128 Debuggen/Simulieren

OP #1450146
Lesenswert?

Hallo!

Ich bin gerade am Verzweifeln. Ich möchte ein kurzes Programm für einen 
ATMega128 debuggen. Hab es mit AVR Studio probiert. Ich starte den 
Debugger, klicke auf Step Into und will so das Programm testen. Bis zur 
Endlosschleife funktioniert das auch, aber sobald ich bei einer Schleife 
bin (auch bei endlichen) springt er einfach an den Beginn vom main. Hab 
schon alles probiert, aber ich finde nicht heraus warum das so ist.

Dann hab ich es mit VMLab probiert. Hier kommt andauernd der Fehler 
"Error! Unable to run compiler". WinAVR ist installiert. Auch der Pfad 
in den "Code Maker"- Einstellungen ist richtig eingestellt.

Hat wer eine gute Lösung wie ich einfache Programme für den ATMega 
testen kann? Ideal wäre noch eine möglichkeit ein Diagramm zu erzeugen, 
das die Ausgangspegel über der Zeit anzeigt.

Danke im Voraus,
Lg,
Max
OP #1450442
Lesenswert?

Natürlich, sry

1
#include <avr/interrupt.h>
2
#include <avr/io.h>
3
#include <stdio.h>
4

5

6
int main(void)
7
{
8
  int x = 0;
9
  int y = 0;
10

11
  PORTB = 0x00;
12
  DDRB = 0xC0;  
13
  TCCR1A = 0x23;  
14
  TCCR1B = 0x19;
15
  
16
  OCR1BH = 0xFF;
17
  OCR1BL = 0xFF;
18
  
19
  ICR1H = 0x00;
20
  ICR1L = 0xFF;
21
  
22
  sei();
23
  
24
  for (x = 0; x < 10; x ++)
25
  {
26
    y += x;
27
  }
28

29
  while(1);
30
}

Die for- Schleife ist nur da um zu sehen ob er in eine normale Schleife 
reingeht oder nicht. sobald ich bei sei(); bin und auf Step Into klicke 
beginnt er wieder beim main und manchmal auch irgendwo im Programm 
oberhalb der Schleife. Ich hab leider schon lang (ca. 4 Jahre) nichts 
mehr mit µC gemacht und bin schon ein bisschen eingerostet :)
Gast #1450612
Lesenswert?

>und er somit main() beendet und das führt meistens zu einem reset.

Nein. tut es nicht. Der gcc bzw. die avrlibc hängen immer noch eine 
eigene Endlosschleife ans Programmende.

Das Problem wird ein Interrupt ohne ISR sein. Ich habe jetzt keine Lust, 
die die Bits der Timerinitialisierungen auseinanderzubasteln, aber nimm 
das sei() raus, und schau, was passiert.

Oliver
OP #1450629
Lesenswert?

Oliver schrieb:
>>und er somit main() beendet und das führt meistens zu einem reset.
>
> Nein. tut es nicht. Der gcc bzw. die avrlibc hängen immer noch eine
> eigene Endlosschleife ans Programmende.
>
> Das Problem wird ein Interrupt ohne ISR sein. Ich habe jetzt keine Lust,
> die die Bits der Timerinitialisierungen auseinanderzubasteln, aber nimm
> das sei() raus, und schau, was passiert.
>
> Oliver

Jap, jetzt geht das debuggen :) Wie gesagt, hab lange nichts mit µCs 
gemacht :) Kann AVR Studio PWM simulieren, wenn ich vom PORTB ein 
log-File erzeugen lasse? Weil irgendwie kommt nichts raus. Ich will 
jetzt nicht dass mir irgendwer das Programm verbessert, sondern nur 
wissen ob es geht, damit ich nicht umsonst noch mal das Datenblatt lesen 
muss...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren