stack overflow?
out of memory?
allokierst du irgendwelchen speicher, den du vllt nicht mehr freigibst?
oder springst du irgendwo komisch rum?
alles schon selbst gehabt. da passieren die lustigsten dinge.
wenn du nen jtag hast, schau mal nach, was der controller so treibt, wenn das lcd aus geht.
wenn du das nicht hat, pack mal (wenns C ist) folgenden code rein:
Code:
void print_mem() {
void * addr=malloc(256);
uint16_t xaddr=(uint16_t)addr;
uint16_t yaddr=(uint16_t)alloca(1);
free(addr);
//lcd code muss man anpassen
lcd_goto(20);
lcd_str_P(PSTR("RE:0x"));
put_hex(xaddr>>8);
put_hex(xaddr&0xff);
lcd_goto(30);
lcd_str_P(PSTR("SP:0x"));
put_hex(yaddr>>8);
put_hex(yaddr&0xff);
return;
EDIT: Die blockgröße kann man anpassen, die er allokieren soll. Wenn RE (RamEnd wächst mit der zeit, frisst irgendwas speicher, wenn SP immer weiter sinkt, läuft der stack über.
ersteres kommt, wenn man irgendwo dynamisch speicher belegt,
letzteres, wenn man funktionen/irqs nicht ordentlich verlässt
Lesezeichen