Christoph__
01.10.2006, 13:27
Hallo Leute!
Hier ein Test-Programm O:) , dass die Nokia-Anzeigen 3310 und 3410 mit einem
PIC18F4550 verwendet. Die Anzeige kann wahlweise am Hardware-SPI oder an
software-definierten Anschlüssen betrieben werden. Ich habe das Programm
aus CSS nach C18 portiert und im Simulator getestet. Es ist eine
Überarbeitung eines Quelltextes, der bereits ins Forum gestellt wurde.
Es dürften aber noch kleine Schnitzer drin sein. Probiert es einfach
aus und sagt mal, ob es bei Euch läuft. Es läuft mit kleinen
Veränderungen auch auf allen anderen 18F Prozessoren. :-b
Übrigens hab ich überlegt, ob man nicht die Hardware-SPI mit einem
Interrupt arrangieren könnte, damit der Prozessor nicht sinnlos
herumrödeln muss, soll heißen,...
1 void SendeDaten(unsigned char* Puffer,unsigned char Anzahl)
2 {
3 unsigned char iByte;
4 unsigned char i;
5 _SCE=0;
6 for (iByte=0;iByte<Anzahl;++iByte)
7 {
8 WriteSPI(Puffer[iByte]);
9 while (!PIR1bits.SSPIF); \:D/
10 }
11 _SCE=1;
12 }
...dass das ,,while (!PIR1bits.SSPIF)" in einer ISR abgefertigt wird.
Vielleicht hat ja jemand noch ein Kaninchen im Hut...
8-[ Grüße,
Christoph
Hier ein Test-Programm O:) , dass die Nokia-Anzeigen 3310 und 3410 mit einem
PIC18F4550 verwendet. Die Anzeige kann wahlweise am Hardware-SPI oder an
software-definierten Anschlüssen betrieben werden. Ich habe das Programm
aus CSS nach C18 portiert und im Simulator getestet. Es ist eine
Überarbeitung eines Quelltextes, der bereits ins Forum gestellt wurde.
Es dürften aber noch kleine Schnitzer drin sein. Probiert es einfach
aus und sagt mal, ob es bei Euch läuft. Es läuft mit kleinen
Veränderungen auch auf allen anderen 18F Prozessoren. :-b
Übrigens hab ich überlegt, ob man nicht die Hardware-SPI mit einem
Interrupt arrangieren könnte, damit der Prozessor nicht sinnlos
herumrödeln muss, soll heißen,...
1 void SendeDaten(unsigned char* Puffer,unsigned char Anzahl)
2 {
3 unsigned char iByte;
4 unsigned char i;
5 _SCE=0;
6 for (iByte=0;iByte<Anzahl;++iByte)
7 {
8 WriteSPI(Puffer[iByte]);
9 while (!PIR1bits.SSPIF); \:D/
10 }
11 _SCE=1;
12 }
...dass das ,,while (!PIR1bits.SSPIF)" in einer ISR abgefertigt wird.
Vielleicht hat ja jemand noch ein Kaninchen im Hut...
8-[ Grüße,
Christoph