Forum: Mikrocontroller und Digitale Elektronik Fehler beim debuggen eines Atmega8


von Philipp S. (ltk)


Lesenswert?

Hallo,
ich habe mir auf einem Steckbrett eine einfache Atmega8 Beschaltung 
aufgebaut, wie diese 
hier(http://www.elektronik-bastelkeller.de/atmega8grundschaltung.php). 
Nun habe ich mir einen kleinen Code selber geschrieben in C mit 
AtmelStudio:

#define F_CPU 1000000UL  //Taktfrequenz auf 1MHz setzten

#include<avr/io.h>
#include<util/delay.h>

int main () {  //Anfang

  DDRB |= (1<<PB0);  //Port B als Ausgang definieren

while(1)
  {
    PORTB |= (1<<PB0);  //Port B High setzten
    _delay_ms(1000);  //Verzögerung

    PORTB &= ~(1<<PB0);  //Port B Low setzten
    _delay_ms(4000);  //Verzögerung
    main();
  }

}  //Ende

Nun wollte ich den Code auf den Atmega8 flashen was, aber komischer 
weise immer nur sporadisch funktioniert. Das Output-Fenster zeigt nie 
einen Fehler an, es kommen nur Error Hinweise auf dem Bildschirm, wie:

Failed to launch program.
Error: ispProgrammMem: Error statuts recived: Got 0x80, exspected 0x00

Ab und zu funktioniert der Flash auch jedoch zeigt die LED keine 
reaktion oder ist dauerhaft an.

Der Fehler tritt auch auf, wenn ich Werte wie delay verändere.

Vielen Dank schon mal
Philipp

von holger (Gast)


Lesenswert?

int main () {  //Anfang
....
while(1)
  {
......
    main();
  }

}

main() ruft sich selbst auf. GANZ SCHLECHTE IDEE;)

von Philipp S. (ltk)


Lesenswert?

Danke ist mir gar nicht aufgefallen die Rekursion...
Trozdem spuckt Atmel immer noch einen  Fehler, diesesmal aber:

Failed to launch program.
Error: Unexspected signature 0x001e0107 (exspected 0x001e9307)

Ach sicherheitshalber habe ich den Atmega mal getauscht, das hat jedoch 
keine Änderung gebracht...

Danke für alle weiteren Hilfestellungen!

Philipp

von Achim K. (aks)


Lesenswert?

Die Signatur entspricht dem "genauen" AVR Typ. Hast Du den richtigen 
Prozessor eingestellt und ist es auch wirklich der?
Oder prüfe mal Deine ISP Verdrahtung, in Deinem ersten Post hast Du ja 
von sporadischen Fehlern berichtet.

von holger (Gast)


Lesenswert?

>Failed to launch program.
>Error: Unexspected signature 0x001e0107 (exspected 0x001e9307)

Dreh die ISP Frequenz runter.

von RFM12 (Gast)


Lesenswert?

Außerdem glaub ich nicht, dass du mit _delay_ms() so lange warten wirst 
können.

Probier mal 10ms lange Pausen und mit 'ner for(;;) rufst die dann 
beliebig oft auf!

von Philipp S. (ltk)


Lesenswert?

Danke, ich dachte zwar ich hätte die Taktfrequenz schon niedrig genug, 
das hat aber anscheinend noch nicht gereicht...

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.