Forum: Compiler & IDEs absturz bei Rücksprung


von Tobias K. (kruehn)


Angehängte Dateien:

Lesenswert?

Hallo!
Ich habe mir ein neues Board mit einem Mega128 gemacht und wollte das
gerade mal mit einem kleinen Testprogramm ausprobieren. Der yC lässt
sich programmieren und mein Testprogramm startet auch. Ich habe ein
paar leds an Port A angeschlossen.
Diese Blinken
1x lang, d.h. das Programm startet
1x kurz, d.h. das Programm springt nach crash()
Dann fängt es von vorne an, d.h. es kommt kein zweites kurzes Blinken.
Das Programm stürzt also anscheinend beim Rücksprung aus crash() ab.
Irgendwie habe ich ein Brett vorm Kopf.
Hier nun das vollständige Programm, im Anhang ist noch mein Makefile.
Darin ist vom Original allerdings kaum etwas geändert.
Wäre schön, falls jemandem etwas einfällt.
Danke, Grüße
Tobi

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

void crash(void)
{
  PORTA = 0xFF;
  _delay_ms(100); _delay_ms(100);
  PORTA = 0x00;
  _delay_ms(100);  _delay_ms(100);
  PORTA = 0xFF;
}

int main(void)
{
  DDRA = 0xff;

  PORTA = 0xFF;
  _delay_ms(100); _delay_ms(100);
  _delay_ms(100); _delay_ms(100);
  _delay_ms(100); _delay_ms(100);
  _delay_ms(100);  _delay_ms(100);
  _delay_ms(100);
  PORTA = 0x00;
  _delay_ms(100); _delay_ms(100);
  _delay_ms(100);  _delay_ms(100);
  _delay_ms(100);  _delay_ms(100);
  _delay_ms(100);  _delay_ms(100);
  _delay_ms(100);  _delay_ms(100);
  PORTA = 0xFF;

  crash();

  PORTA = 0xFF;
  _delay_ms(100);  _delay_ms(100);
  PORTA = 0x00;
  _delay_ms(100);  _delay_ms(100);
  PORTA = 0xFF;
}

von Tobias K. (kruehn)


Lesenswert?

Ähm, noch schräger ist:
Wenn ich im Makefile
OPT = 0
eintrage und den yC Programmiere, passiert gar nicht mehr.
(?)
Grüße
Tobi

von mmerten (Gast)


Lesenswert?

Mega103 Kompatibilitätsmode beim Mega128 auch ausgeschaltet ? Sonst
läuft die Stack Initialisierung ins Leere.

von Tobias K. (kruehn)


Lesenswert?

Uuups, ich sags ja: Brett vorm Kopf.
Danke, das war's.

Grüße
Tobi

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.