absturz bei Rücksprung

OP #284066
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;
}
Angehängte Dateien:

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