warum funktioniert bei SPI output_high nicht richtig?

OP #613773
Lesenswert?
• ▲
▼
Hallo,
ich verwende bei meinem PIC 18F2480 SPI und einen AD7790. Laut 
Datenblatt des AD7790 soll DIN während des Lesens auf high sein. Daher 
setze ich den entsprechenden PIN am PIC vorher auf high.
1
output_high(PIN_C5);
2
delay_us(50);
3

4
while(!input(PIN_C5))
5
   {
6
   //warten auf PIN_C5 high
7
   };
8

9
data_in = spi_read(0);

Leider lässt sich dieser PIN nicht auf high setzen. Auch am Oszi merkt 
man nichts.

Woran liegt das?

Danke.
Gast #613933
Lesenswert?
• ▲
▼
Hi

Wieso schreibst du nicht einfach 0xFF hinaus?! Denn dass ist immerhin 
Dauer-High ;-)

Achja... noch eine anmerkung
1
output_high(PIN_C5);
2
....
3
input(PIN_C5);

Durch "input(PIN_C5)" wird RC5 als eingang konfiguriert und ist nicht 
mehr als Ausgang eingestellt. dh er geht dann in den Tristate zustand 
über, was du ja nicht wolltest.

Lösungen:
Entweder du benutzt #use FAST_IO und musst deine Tristate-Register immer 
selbst setzen.
Oder du lässt die Spezialfunktionen links liegen und schreibst direkt in 
die jeweiligen Register(dazu musst du dir zuvor noch eine Header 
schreiben.. ist aber nicht kompliziert), was ich dir für weitere 
programme nur ans herzen legen kann.

mfg Schoasch
OP #614211
Lesenswert?
• ▲
▼
Vielen Dank für diese tollen Ratschläge.

Da ich aber leider nicht so geübt in diesen Dingen bin (man merkt es
auch an meinen Fragen), muss ich leider nochmals nachhaken.
Schoasch, du meintest, ich solle mir eine Header schreiben. Könntest du
mir dazu ein Beispiel geben?
Und wieso 0xFF? Es soll ja nur dieser PIN RC5 high sein. Könntest du das
noch näher erläutern?

Und noch etwas: wie kann ich kontrollieren, ob der Ausgang auf high 
gegangen ist, wenn nicht mit input?

Danke!

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.