Ich hab das ganze Projekt jetzt mal kopiert und alles rausgeschmissen, was ich nicht brauche. Hier die LED-Board.c:
Wie man sehen kann: Die Buchstaben A, B, und C liegen und bleiben im Flash, der LEDTable_text liegt im Ram (muss ja verändert werden)Code:#include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <util/delay.h> #include "ledboard.h" const prog_char char_A[6] = { 0b00111111, 0b01001000, 0b01001000, 0b01001000, 0b00111111}; const prog_char char_B[6] = { 0b01111111, 0b01001001, 0b01001001, 0b01001001, 0b00110110}; const prog_char char_C[6] = { 0b00111110, 0b01000001, 0b01000001, 0b01000001, 0b00100010}; unsigned char LEDTable_text[30]; void putaintoled (void) { unsigned char Pos_2; unsigned char Pos_1; Pos_1 = 0; Pos_2 = 0; while(Pos_2 <=4) { LEDTable_text[Pos_1] = char_A[Pos_2]; Pos_1 = Pos_1 +1; Pos_2 = Pos_2 +1; } LEDTable_text[5] = 0b10000000; } // ------------------------------- Ab hier nur noch Funktionen um den Text mit den LEDs auszugeben ----------------------- void PrintByte2LEDs (unsigned char data, unsigned char posonboard) // Spalte der LED-Matrix ansteuern { unsigned char Data_for_Block_dez = 0; if(1) { BOARDHORIZ_PORT = BOARDHORIZ_PORT & ~BOARDHORIZ1 & ~BOARDHORIZ2 & ~BOARDHORIZ3 & ~BOARDHORIZ4 & ~BOARDHORIZ5 & ~BOARDHORIZ6 & ~BOARDHORIZ7; if(data & 0b00000001) BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ1; if(data & 0b00000010) BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ2; if(data & 0b00000100) BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ3; if(data & 0b00001000) BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ4; if(data & 0b00010000) BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ5; if(data & 0b00100000) BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ6; if(data & 0b01000000) BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ7; if(posonboard<=8) { BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE1; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE2; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE3; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE4; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE5; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE6; Data_for_Block_dez = posonboard; } if((posonboard>8) && (posonboard<=16)) { BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1; BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE2; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE3; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE4; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE5; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE6; Data_for_Block_dez = posonboard - 8; } if((posonboard>16) && (posonboard<=24)) { BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE2; BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE3; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE4; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE5; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE6; Data_for_Block_dez = posonboard - 16; } if((posonboard>24) && (posonboard<=32)) { BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE2; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE3; BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE4; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE5; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE6; Data_for_Block_dez = posonboard - 24; } if((posonboard>32) && (posonboard<=40)) { BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE2; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE3; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE4; BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE5; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE6; Data_for_Block_dez = posonboard - 32; } if((posonboard>40) && (posonboard<=48)) { BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE2; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE3; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE4; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE5; BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE6; Data_for_Block_dez = posonboard - 40; } unsigned char Data_for_Block_bin = 1<<(Data_for_Block_dez-1); BLOCKDATA_PORT = BLOCKDATA_PORT & ~BLOCKDATA1 & ~BLOCKDATA2 & ~BLOCKDATA3 & ~BLOCKDATA4 & ~BLOCKDATA5 & ~BLOCKDATA6 & ~BLOCKDATA7 & ~BLOCKDATA8; if(Data_for_Block_bin & 0b00000001) BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA1; if(Data_for_Block_bin & 0b00000010) BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA2; if(Data_for_Block_bin & 0b00000100) BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA3; if(Data_for_Block_bin & 0b00001000) BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA4; if(Data_for_Block_bin & 0b00010000) BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA5; if(Data_for_Block_bin & 0b00100000) BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA6; if(Data_for_Block_bin & 0b01000000) BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA7; if(Data_for_Block_bin & 0b10000000) BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA8; } } void PrintText2LEDs (void) //LEDTable_text auf die LED-Matrix ausgeben (muss periodisch aufgerufen werden) { unsigned char Pos_in_LEDTable_text; for(Pos_in_LEDTable_text = 0; LEDTable_text[Pos_in_LEDTable_text]!=0b10000000; Pos_in_LEDTable_text++) { PrintByte2LEDs(0, Pos_in_LEDTable_text+1); _delay_us(1); PrintByte2LEDs(LEDTable_text[Pos_in_LEDTable_text], Pos_in_LEDTable_text+1); _delay_us(2); } } void LEDInitIO (void) { BLOCKENABLE_DDR = BLOCKENABLE_DDR | BLOCKENABLE1 | BLOCKENABLE2 | BLOCKENABLE3 | BLOCKENABLE4 | BLOCKENABLE5 | BLOCKENABLE6; BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1 | BLOCKENABLE2 | BLOCKENABLE3 | BLOCKENABLE4 | BLOCKENABLE5 | BLOCKENABLE6; BLOCKDATA_DDR = BLOCKDATA_DDR | BLOCKDATA1 | BLOCKDATA2 | BLOCKDATA3 | BLOCKDATA4 | BLOCKDATA5 | BLOCKDATA6 | BLOCKDATA7 | BLOCKDATA8; BLOCKDATA_PORT = BLOCKDATA_PORT & ~BLOCKDATA1 & ~BLOCKDATA2 & ~BLOCKDATA3 & ~BLOCKDATA4 & ~BLOCKDATA5 & ~BLOCKDATA6 & ~BLOCKDATA7 & ~BLOCKDATA8; BOARDHORIZ_DDR = BOARDHORIZ_DDR | BOARDHORIZ1 | BOARDHORIZ2 | BOARDHORIZ3 | BOARDHORIZ4 | BOARDHORIZ5 | BOARDHORIZ6 | BOARDHORIZ7; BOARDHORIZ_PORT = BOARDHORIZ_PORT & ~BOARDHORIZ1 & ~BOARDHORIZ2 & ~BOARDHORIZ3 & ~BOARDHORIZ4 & ~BOARDHORIZ5 & ~BOARDHORIZ6 & ~BOARDHORIZ7; }
Vielen Dank schonmal :-D
-schumi-







Zitieren

Lesezeichen