Forum: Mikrocontroller und Digitale Elektronik PIC16F887 SPI


von Michael H. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

Ich möchte ein EA-DOGM 163 LCD Diplay per SPI mit einem PIC16F887 
ansteuern.

Mit dem angehängten Code bleiben allerdings die Ausgänge des PIC's 
ständig auf Low (SCL und SDO). Andere Programme haben bisher immer ohne 
Probleme funktioniert.

Hat jemand eine Idee woran es liegen könnte?

MfG

Michael

von Lehrmann M. (ubimbo)


Lesenswert?

Compiliert das Programm überhaupts?

Funktioniert die Schaltung ?

von Tobi D. (fanti)


Lesenswert?

ist das das komplette Programm?

in den Fuses hast du internen Osszilator gewählt, aber der ist in der 
init nicht definiert

außerdem ist mir aufgefallen, dass die Zeitschleife etwas merkwürdig 
ist, das sind jetzt 2 einstufige Zählschleifen, sollte das eine 
Zweistufige werden, oder hat es irgendeinen tieferen Sinn wieso du das 
so gemacht hat?

lass doch den SPI-kram erstmal weg und lass im Hauptprogramm einen 
Ausgang blinken, dann hast du schon sehen ob der PIC überhaupt läuft

von Stephan S. (uxdx)


Lesenswert?

> in den Fuses hast du internen Osszilator gewählt, aber der ist in der
> init nicht definiert

der steht per Default auf 4 MHz

von Stephan S. (uxdx)


Lesenswert?

mit BCF SS (=PORTA5) seleketierst Du den Slave Mode.

von Michael H. (Gast)


Angehängte Dateien:

Lesenswert?

> Compiliert das Programm überhaupts?
> Funktioniert die Schaltung ?

> lass doch den SPI-kram erstmal weg und lass im Hauptprogramm einen
> Ausgang blinken, dann hast du schon sehen ob der PIC überhaupt läuft

Der PIC befindet sich auf einem Evaluations-Board zusammen mit dem 
Display und anderen Kompontenten (Summer, LED usw.). Bisher konnte ich 
alles wie gewollt ansteuern, der PIC funktioniert also.

Anscheinend bleibt das Programm bei loop1 stehen (Abfrage von Buffer 
Full).

So weit ich das Datenblatt verstanden habe sollte direkt nachdem ein 
Byte nach SSPBUF geschrieben wurde das Byte am SDO Pin zusammen 
ausgegeben werden und wenn die Ausgabe fertig ist das BF Bit von SSPSTAT 
gesetzt werden.

Ich habe aber weder am SDO Pin noch am SCL Pin ein Signal gemessen.

von usuru (Gast)


Lesenswert?

> Ich habe aber weder am SDO Pin noch am SCL Pin ein Signal gemessen.

Lies doch mal den Beitrag von Stephan S.

> mit BCF SS (=PORTA5) seleketierst Du den Slave Mode.

Du bist im Slave Mode !!!!!!!!!!

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
Noch kein Account? Hier anmelden.