Hi,
gut das es nur im Schaltplan ist, es sei dir verziehen 
Also als Schutz für den PIC solltest Du die Eingänge entkoppeln, d.h. einen Schutzwiderstand verbauen damit falls ein Eingang versehentlich als Ausgang definiert wird kein hoher Strom fließen kann, der den PIC zerstört.
Code:
Ich versuch mich mal künstlerisch.
RA0 ----- 1k ----- Taster ----- GND.
Zwischen 1k und Taster noch eine Pullup (z.B. 4,7k) an Vdd (+).
Nun zum Code:
Code:
movlw 0x00 ;PORTB, setze alle Bits 0
movwf PORTB
machst Du schon indem Du clrf PORTB in der Zeile drüber ausführts. Nur mal so nebenbei.
Funktioniert das:
Code:
loop3
BTFSS PORTA,0
call main
call wait
goto loop3
return
Ich habs jetzt nicht simuliert aba könnte es sein das Du einen Stack Überlauf produzierst, da Du hier main mit call aufrufst, d.h. er springt zu main (Rücksprungeadresse wird gespeichert), im main springt er zu wait (+ 1 weitere Adresse) irgendwann kommt er bei loop 3 das glecihe wiederholt sich bis der Stack überläuft (max. 8 Adresse), dann macht der PIC schmarrn.
Am besten mal im MPLAB testen!
mfg
Benny
Lesezeichen