Hallo Leute! Hier ein Test-Programm, 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. Ü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); 10 } 11 _SCE=1; 12 } ...dass das ,,while (!PIR1bits.SSPIF)" in einer ISR abgefertigt wird. Vielleicht hat ja jemand noch ein Kaninchen im Hut... Grüße, Christoph
Hallöle, einen Interrupt ist, wenn ich den Quelltext von AN1003 (MSD-Karte an PIC) richtig verstehe, eigentlich Quatsch. Man kann sogar den ganzen Kram im normalen Programmteil beschleunigen: _SCE=0; //Anzeige einschalten for (iByte=0;iByte<Anzahl;++iByte) SSPBUF=Puffer[iByte]; _SCE=1; Erklärung: Die Schleife läuft 21 Befehlstakte lang, dass SPI Schieberegister braucht aber nur 16 Takte zum versenden der 8 Bits, vorausgesetzt es ist fosc/8 eingestellt ist => bei 20MHz sendet PIC mit 2,5Mbit/Sek Also ist ein Byte schneller raus als ein Schleifendurchlauf dauert. Deshalb geht das hier so einfach Sagt mir, wenn Ihr's anders seht, ich hab's noch nicht ausprobiert Grüße, Christoph P.S. Die Angabe im Datenblatt, dass das SPI des PIC18F4550 2Mbit/Sek (S.200) macht ist ein Tippfehler. Es muss 12Mbit/Sek heißen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.