mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Nokia 3310 und Nokia 3410 mit C18


Autor: Christoph123 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.