Wie stellen Sie den Port als Eingang für den Taster in C?
Ich benutze MikroC, um zu versuchen und mein Programm PIC16f62 Mikrocontroller. Ich habe es geschafft, meine Ausgaben arbeiten (ich kann LEDs Leuchten, etc), aber ich kann nicht scheinen, um die Eingänge arbeiten.
Hier ist mein Derzeitiger code:
void main() {
TRISB.RB0 = 0; //set Port RB0 as output
PORTB.RB0 = 1; //set Port RB0 to high (turn on LED)
TRISA = 1; //Set PORTA as inputs
for(;;){ //endless loop
if(PORTA.RA0 == 1){ //if push button is pressed
PORTB.RB0 = !PORTB.RB0; \\toggle LED
}
}
}
Ich weiß nicht, ob das problem ist, dass ich nicht die Konfiguration der PORT richtig oder wenn ich es prüft, ob die Taste gedrückt ist falsch.
Jede Hilfe ist willkommen. Danke.
Haben Sie einen Umfang an RA0 und RB0 - und was zeigt er mit die Taste gedrückt?
Ich fügte hinzu, die eingebettete Tags zu diesem post. In jeder Frage, die über Mikro-Controller, und Sie haben eine viel höhere chance, die richtige Art von Menschen zu Lesen und zu beantworten.
Ich fügte hinzu, die eingebettete Tags zu diesem post. In jeder Frage, die über Mikro-Controller, und Sie haben eine viel höhere chance, die richtige Art von Menschen zu Lesen und zu beantworten.
InformationsquelleAutor Shahmeer Navid | 2012-08-21
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese änderung kann Ihnen helfen.
InformationsquelleAutor rajesh6115
Sind Sie wahrscheinlich das Lesen der port-pin richtig, aber da man durch das Umschalten der LED auf und ab, wenn Sie erkennen, eine Presse, Ihr Auge kann das Ergebnis nicht sehen.
Beispielsweise eine Taktrate von 1Mhz wird der on/off toggle von rund 150.000 mal pro Sekunde (1.000.000 Zyklen /~3 ASM Instruktionen pro Schleife /2 loops zu schalten dann ab).
Ich würde vorschlagen, unter dem Ansatz, dass die LED-match der Zustand des eingangspins.
Diese Technik ist ähnlich zu dem, was Rajesh vorgeschlagen, aber bietet ein wenig mehr direktes feedback, ob die Eingabe der pin gesetzt ist oder nicht.
Wenn das nicht funktioniert, dann ist etwas mit deinem setup der TRISA ist nicht korrekt. Sie möchten möglicherweise versuchen Sie dies:
InformationsquelleAutor Ross