Cytuj:
Źle podchodzisz do tematu. Marnujesz pamięć RAM na przechowywanie stałych. Należy zdefiniować sobie tablicę która będzie zawierać to co ma być wyświetlane. Obsługa wyświetlacza wykorzystująca timer powinna stale przepisywać zawartość tablicy na wyświetlacz używając multipleksowania, czyli w danej milisekundzie świeci się 1 kolumna, a w kolejnej następna tak samo jak są sterowane wyświetlacze 7-segmentowe na zestawie ATB.
Wczoraj z jednym z uzytkowników doszedłem do tego samego wniosku by uzyc multipleksowania, dlatego opierając sie na BB skonfigurowałem timer, i proceduje przerwania. Kod wstawiam ponizej. nie wiem dokonca czemu eclipse przy kompilacji wyrzuca taki warring:
Kod:
Building file: ../matryca.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"matryca.d" -MT"matryca.d" -c -o "matryca.o" "../matryca.c"
../matryca.c:31:1: warning: return type defaults to 'int'
../matryca.c: In function 'ISR':
../matryca.c:31:1: warning: type of '__vector_3' defaults to 'int'
../matryca.c:45:1: warning: control reaches end of non-void function
Finished building: ../matryca.c
Building target: tablice.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,tablice.map -mmcu=atmega8 -o "tablice.elf" ./LCD/lcd44780.o ./main.o ./matryca.o
./matryca.o: In function `ISR':
matryca.c:(.text+0x2c): undefined reference to `wiersz1'
matryca.c:(.text+0x36): undefined reference to `wiersz2'
matryca.c:(.text+0x40): undefined reference to `wiersz3'
matryca.c:(.text+0x4a): undefined reference to `wiersz4'
matryca.c:(.text+0x54): undefined reference to `wiersz5'
collect2: ld returned 1 exit status
make: *** [tablice.elf] Error 1
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
"wiersz1" itd to tylko tak na chwile, zeby zobaczyc ogół, w pozniejszym czasie bedą tam odwałania do tablicy, nad która teraz myslę jak zorganizować. Mam matryce 5x7 czyli 5 wierszy i 7 kolumn. Chce sterować wierszami, gdyz jest ich mniej

. Jak mozna zorganizować tablicę, by łatwo mozna było zmieniaj jej zawartosc? np w danym miejscu w tablicy umiescic "1" by zapalił sie dany punkt ?, a potem "ifami": sprawdzac czy danelement jest "1" i wtedy odnosi sie do innej tablicy zawierającej w danym miejscu fragment typu PORTX |= (1<<X1) ?
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.