www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC change a port direction , wie in C?


Autor: Christoph Noname (mrmister)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe im Datenblatt des PIC folgendes Codebeispiel in Assembler 
geunden um zwischen dem Aendern der Portrichtung einen Instruction cycle 
zu definieren...
MOV 0xFF00, W0 ; Configure PORTB<15:8> as inputs
MOV W0, TRISB ; and PORTB<7:0> as outputs
NOP ; Delay 1 cycle
BTSS PORTB, #13 ; Next Instruction

...wie kann ich das in C machen?

Autor: A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BTSS kenne ich nicht, aber btfss?

TRISB = 0xFF;
Nop();
if((PORTB & 0x2000) == 0)
{


}

statt PORTB vielleicht LATB benutzen.

Autor: A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry aber : TRISB = 0xFF00;

Autor: Christoph Noname (mrmister)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ A.

...ich meine nicht das schlaten des Ports selber sondern eben diese 
Nop(); instruction...also kann ich Nop(); einfach in C verwenden?

...brauch ich da noch eine include?

EDIT: ...laeuft...

Autor: Christoph Noname (mrmister)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...prinzipiell geht es naemlich darum, das es bei mir der Falls ist, das 
am ADC Eingang bevor ich messe eine hohe Spannung anliegt (natuerlich <= 
Vref)...

...jetzt versuch ich den Ausgang erst dann TRIS=1 zu setzten wenn ich 
ihn brauchen, um so die Spietz am Eingang abzufangen, oder gibts da eine 
elegantere Loeseung?

Autor: A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ADC richtig einstellen, Module starten und auf Interupt warten.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder
while(!(ADCREG.DONE));
val = ADCxBUF;

Autor: Christoph Noname (mrmister)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...ja den ADC hab ich schon richtig eingestellt, startet wenn ich meine 
Sample() aufrufe und generiert einen Inrreupt wenn er fertig 
ist....trotzdem muss ich die TRIS Bits doch schon vorher setzen, oder 
meinst erst in der Sample Funktion des ADCs?

Autor: A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich weiss nicht was für ein PIC das ist, aber du musst den Pin als 
Eingang (TRISBx = 1) und als analog (ADCxCFGx = 0)vor der Messung 
einschalten.

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.