Hallo alle Zusammen !!
Ich baue gerade eine LED Anzeige hab mommentan eine Platine mit einem
Atmgea 16 und zwei 7x5 Led Matrixen gebaut.
Über PortA kann iich ein Modul beschreiben und über PortB das Zweite.
76543210 8-bit uC Port
SSSSSZZZ Spalte, Zeile
Ich gehe hintereinander schnell alle Zeile (Pin 0,1,2) durch und kann
über Pin 3,4,5,6,7 die jeweilige splate aktivieren.
Nun meine Frage ich habe bis jetzt immer das gleiche Spaltenmuster
drüber laufen lassen(siehe C Code unten), wie muss mein C Code Aussehen
damit ich z.B: Buchstaben darstellen kann ??
Bitte um Hilfe !! ,Danke im Voraus !
1 | #include <avr/delay.h>
|
2 | #include <avr/io.h>
|
3 | #include <util/delay.h>
|
4 |
|
5 |
|
6 | void long_delay(uint16_t ms) {
|
7 | for(; ms>0; ms--) _delay_ms(1);
|
8 |
|
9 | }
|
10 |
|
11 | eint main (void) {
|
12 |
|
13 | /* 7654 3210
|
14 | llll lzzz */
|
15 |
|
16 |
|
17 | DDRB=0xff;
|
18 | DDRA=0xff;
|
19 |
|
20 | unsigned char zeile, led;
|
21 | unsigned char ledb;
|
22 |
|
23 |
|
24 | while (1) { for (zeile = 0;zeile<8;zeile++) {
|
25 |
|
26 |
|
27 | long_delay(1);
|
28 |
|
29 |
|
30 | led = 0x50;
|
31 | ledb = 0xa8;
|
32 |
|
33 |
|
34 | PORTA= led + zeile;
|
35 | PORTB= ledb + zeile;
|
36 |
|
37 | }
|
38 |
|
39 | }
|
40 | return 0;
|
41 | }
|