PIC I/O eingang abfragen ausgang schalten

Gast #3245148
Lesenswert?

habe zum ersten Mal mit PIC-Controllern zu tun. Hier meine Frage: Wie
liest man einen Eingang ein? Ich möchte z.B. RA0 einlesen und RB0 
schalten. Aber es funktuniert nicht.

Hier mein code:
1
#include "pic.h"
2

3
void main()
4
{
5
TRISA = 0x01;
6
TRISB = 0x00;
7

8
while(1){
9

10
if(PORTAbits.RA0){
11
PORTBbits.RB0 = 1;
12
}
13
else {PORTBbits.RB0 = 0;}
14
}
15
}
#3246120
Lesenswert?

Hallo,

Es wäre interessant zu wissen, welcher Compiler verwendet wird und 
welche Konfiguration vorgenommen wurde.

Der Grund dafür ist, dass es sein kann, dass der Compiler (HTC,CCS oder 
XC8) einen Default-Wert übergibt, wodurch der PIC nicht laufen kann.

Weiterhin wäre interessant, wie dein Aufbau/deine Simulation aussieht. 
Ist beispielsweise eine externe Taktquelle nicht angeschlossen, aber der 
Compiler glaubt, dass dieser vorhanden ist, so wird der PIC nicht 
laufen(Fehler von Mir war einmal, dass der Quarz angeschlossen war, aber 
GND der Quarz-Kondensatoren fehlte, lief dann auch nicht). Auch fehlende 
Versorgung kann dann als Ursache ausgeschlossen werden.
#3246137
Lesenswert?

<multisim> kenne ich nicht.
Aber auf dem MPLAB Simulator und auf dem SourceBoost-C Simulator tut das 
Programm was es soll(te).
Beim prähistorischen F84 gibt es ohnehin kaum was zu konfigurieren, 
keine Analogfunktionen, wenn ich mich recht erinnere nicht mal einen 
internen Oscillator....
Also würde ich mir mal <multisim> und dessen Einstellungen vornehmen
#3246760
Lesenswert?

Hallo,

Bei Dir fehlt die Taktquelle. Diese kann entweder ein RC-Glied, ein 
Quart/Resonator oder ein Taktgenerator sein. Die angeschlossene 
Taktquelle muss als Konfigurationswort im Programm eingetragen werden.

Des weiteren muss der Pin zur Abfrage (wegen dem Taster/Schalter) als 
Eingang definiert werden und einen PullUP oder PullDOWN besitzen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren