Får inte till flera input pinnar till PIC16F690 (pikkit2)
Postat: 16 juli 2009, 22:59:56
Hejsan,
Jag köpte PICkit2 för en vecka sedan för att kontrollera några RGB Power leds jag beställt av MrMister.
Jag har fått till outputen så jag kan visa vilken färg jag vill, men jag behöver minst tre input pinnar också för att välja färg. RA3 (som PICkit2s switch använder) är inga problem, och inte heller RA5, men resten vägrar funka, vad gör jag för fel???
Jag har kladdat ihop följande kod för att komma fram till vad som är problemet:
Jag tänder alltså dioderna när jag trycker ner knapparna och släcker igen när jag släpper, det som inte funkar är att dioden på RC1 är tänd helatiden. Jag antar att RA4 alltid är 1.
Jag har även försökt få till alla andra pinnar till input istället för RA4, men det är bar RA3 och RA5 som funkar.
__config() raden har jag inte förstått mig på riktigt än, jag misstänker att felet ligger där.
Jag hoppas det inte blev för mycket babbel och någon orkar svara, det är väl säkert nåt jätteenkelt jag missat misstänker jag! Databladet har jag hittat och läst men kanske inte förstått allt ännu! så om ni hänvisar till det förklara gärna vad jag gör fel iaf.
Tack på förhand!
/Tomas
Jag köpte PICkit2 för en vecka sedan för att kontrollera några RGB Power leds jag beställt av MrMister.
Jag har fått till outputen så jag kan visa vilken färg jag vill, men jag behöver minst tre input pinnar också för att välja färg. RA3 (som PICkit2s switch använder) är inga problem, och inte heller RA5, men resten vägrar funka, vad gör jag för fel???
Jag har kladdat ihop följande kod för att komma fram till vad som är problemet:
Kod: Markera allt
#include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF )
cblock 0x20
;no variables needed in this example
endc
org 0
Start:
bsf STATUS,RP0 ; select Register Page 1
movlw 0xFF
movwf TRISA ; Make PortA all input
clrf TRISC ; Make PortC all output
bcf STATUS,RP0 ; back to Register Page 0
;<fix>
BSF STATUS,RP1 ;Bank 2
CLRF ANSEL ;digital I/O
BSF STATUS,RP0 ;Bank 1
;</fix>
clrf PORTA
TestLoop:
btfss PORTA,3
bsf PORTC,0
btfss PORTA,4
bsf PORTC,1
btfss PORTA,5
bsf PORTC,2
btfsc PORTA,3
bcf PORTC,0
btfsc PORTA,4
bcf PORTC,1
btfsc PORTA,5
bcf PORTC,2
goto TestLoop
Jag har även försökt få till alla andra pinnar till input istället för RA4, men det är bar RA3 och RA5 som funkar.
__config() raden har jag inte förstått mig på riktigt än, jag misstänker att felet ligger där.
Jag hoppas det inte blev för mycket babbel och någon orkar svara, det är väl säkert nåt jätteenkelt jag missat misstänker jag! Databladet har jag hittat och läst men kanske inte förstått allt ännu! så om ni hänvisar till det förklara gärna vad jag gör fel iaf.
Tack på förhand!
/Tomas