Hallo,
Da mir letztens schon so gut geholfen wurde, dachte ich mir frag ich mal
wieder hier nach.
Und zwar will ich mit Hilfe eines MAX7221 6 7 Segment Anzeigen
ansteuern. Ich habe ein kleines Programm in C geschrieben:
main.c:
1 | #include "main.h"
|
2 |
|
3 | void main (void) {
|
4 | SendWord (POWERON);
|
5 | SendWord (DECODEMODE);
|
6 | SendWord (SCANLIMIT);
|
7 | SendWord (INTENSITY);
|
8 | SendWord (TESTOFF);
|
9 |
|
10 | while ( 1 ) {
|
11 | SendWord(0x0101); //Auf dem Digit 0 eins anzeigen lassen
|
12 | }
|
13 | }
|
14 |
|
15 | void SendWord (unsigned int word) {
|
16 | unsigned int i;
|
17 |
|
18 | DIN = 0;
|
19 | LOAD = 0;
|
20 | CLK = 0;
|
21 |
|
22 | for (i=0; i<16; i++) {
|
23 | DIN = (0x8000 & word) ? 1 : 0;
|
24 | CLK = 1;
|
25 | CLK = 0;
|
26 | word <<= 1;
|
27 | }
|
28 |
|
29 | LOAD = 1;
|
30 | LOAD = 0;
|
31 | }
|
main.h:
1 | #include <AT89X52.h>
|
2 |
|
3 | #define CLK P1_7
|
4 | #define DIN P1_5
|
5 | #define LOAD P1_6
|
6 |
|
7 | #define DECODEMODE 0x09FF
|
8 | #define INTENSITY 0x0A0F
|
9 | #define SCANLIMIT 0x0B07
|
10 | #define POWERON 0x0C01
|
11 | #define POWEROFF 0x0C00
|
12 | #define TESTON 0x0F01
|
13 | #define TESTOFF 0x0F00
|
14 |
|
15 | void SendWord (unsigned int word);
|
Nun zu meinem Problem:
Lade ich das Programm genau so hoch wie es oben dargestellt ist,
passiert gar nichts. Schalte ich den Testmodus ein, leuchten alle 6 7
Segmente, aber sehr schwach (kaum erkennbar).
Würde mich über Hilfe freuen.
Daniel