Hallo zusammen,
ich werd noch doof hier... Hier ein Auszug aus dem Quellcode:
Wenn ich den jetz so ändere:Code:void putaintoled (void) { unsigned char Pos_2; unsigned char Pos_1; Pos_1 = 0; Pos_2 = 0; while(Pos_1 <=4) { LEDTable_text[Pos_2] = char_A[Pos_2]; Pos_1 = Pos_1 +1; Pos_2 = Pos_1; } LEDTable_text[5] = 0b10000000; }
(es wird nur der rote Teil geändert)Code:void putaintoled (void) { unsigned char Pos_2; unsigned char Pos_1; Pos_1 = 0; Pos_2 = 0; while(Pos_1 <=4) { LEDTable_text[Pos_2] = char_A[Pos_2]; Pos_1 = Pos_1 +1; Pos_2 = Pos_2 +1; } LEDTable_text[5] = 0b10000000; }
Dann funktioniert nichts mehr! Bzw. in das Array LEDTable_text wird Anstatt
das hier reinkopiert:Code:0b00111111 0b01001000 0b01001000 0b01001000 0b00111111
Ich checks einfach nicht... Pos_1 wird doch genauso behandelt wie Pos_2?!?Code:0b00000011 0b00000000 0b00000000 0b00000000 0b00100000
Ich hab erst schon gedacht, das kommt von einem Ram-Überlauf oder sowas (Das Programm ist schon relativ groß), aber wohl eher nicht:
Weis jemand Rat?Code:$ avr-size --mcu=atmega32 -C main.elf AVR Memory Usage ---------------- Device: atmega32 Program: 2262 bytes (6.9% Full) (.text + .data + .bootloader) Data: 296 bytes (14.5% Full) (.data + .bss + .noinit) EEPROM: 250 bytes (24.4% Full) (.eeprom)
Viele Grüße
-schumi-
PS: Das ganze ist für eine LED-Board mit 336 LEDs, um dann einen Text anzuzeigen. Leider habe ich derzeit keine guten Debugmöglichkeiten, da der FTDI-Chip noch nicht so will... Aber der Fehler äußerst sich dadurch, dass bei Code 1 ein "A" angezeigt wird (siehe Array) und bei Code 2 eben nur diese 3 LEDs leuchten...
[EDIT] Codebeispiele übersichtlicher gemacht







Zitieren

Lesezeichen