PORTA på PIC16F628A ligger konstant på 1V??
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
PORTA på PIC16F628A ligger konstant på 1V??
Hej!
Jag håller på med ett fjärrkontrollprojekt m.h.a. en PIC 16F628A, men nu har jag kört fast!
Kan inte posta något schema just nu, men det viktiga i det här fallet är att jag kopplat RA:7 till basen på en BC547 via en resistor på 640ohm (Emittern på transistorn är kopplad till jord). Kollektorn är kopplad till 2 seriekopplade IR-lysdioder via ett motstånd till 12V.
Mitt problem är att jag alltid får 1V ut på RA:7, även när porten ska vara avstängd! Detta innebär att transistorn börjar leda, och lysdioderna lyser konstant. Fjärrkontrollen fungerar ändå konstigt nog, trots att lysdioderna lyser konstant när ingen kod sänds.
Misstänker att problemet ligger i initieringen av porten på något sätt. Jag har provat med en annan PIC med samma resultat.
Jag är helt färsk på att programmera PIC:ar, så jag tar gärna emot lite tips!
Nedan kommer den väsentliga kodsnutten:
;==========================================================================
; Main Program
;==========================================================================
ORG 0 ;Reset vector address
GOTO RESET ;goto RESET routine when boot.
;---------------------------------------------------
; Interrupt routine here
;---------------------------------------------------
; ORG 4
; RETFIE NYTT AVSNITT
;==========================================================================
; RESET : Main boot routine
;==========================================================================
RESET MOVLW B'00000111' ;Disable Comparator module's
MOVWF CMCON
BSF STATUS,RP0 ;Switch to register bank 1
MOVLW B'11111111' ;Set PIC options
MOVWF OPTION_REG ;Write the OPTION register.
CLRF INTCON ;Disable interrupts
MOVLW B'11111111'
MOVWF TRISB ;RB0-RB7 are inputs.
MOVLW B'01111100' ;RA0, RA1, RA7 ports are outputs
MOVWF TRISA
BCF STATUS,RP0 ;Switch Back to reg. Bank 0
MOVLW 6
MOVWF BITCNT
MOVLW 1
MOVWF TOGGLE
CLRF PORTA
CLRF PORTB
GOTO MAIN
MAIN CLRF LEDTMP
BTFSS PORTB,SW1
CALL SW_ONE
BTFSS PORTB,SW2
CALL SW_TWO
BTFSS PORTB,SW3
CALL SW_THREE
BTFSS PORTB,SW4
CALL SW_FOUR
GOTO MAIN
Jag håller på med ett fjärrkontrollprojekt m.h.a. en PIC 16F628A, men nu har jag kört fast!
Kan inte posta något schema just nu, men det viktiga i det här fallet är att jag kopplat RA:7 till basen på en BC547 via en resistor på 640ohm (Emittern på transistorn är kopplad till jord). Kollektorn är kopplad till 2 seriekopplade IR-lysdioder via ett motstånd till 12V.
Mitt problem är att jag alltid får 1V ut på RA:7, även när porten ska vara avstängd! Detta innebär att transistorn börjar leda, och lysdioderna lyser konstant. Fjärrkontrollen fungerar ändå konstigt nog, trots att lysdioderna lyser konstant när ingen kod sänds.
Misstänker att problemet ligger i initieringen av porten på något sätt. Jag har provat med en annan PIC med samma resultat.
Jag är helt färsk på att programmera PIC:ar, så jag tar gärna emot lite tips!
Nedan kommer den väsentliga kodsnutten:
;==========================================================================
; Main Program
;==========================================================================
ORG 0 ;Reset vector address
GOTO RESET ;goto RESET routine when boot.
;---------------------------------------------------
; Interrupt routine here
;---------------------------------------------------
; ORG 4
; RETFIE NYTT AVSNITT
;==========================================================================
; RESET : Main boot routine
;==========================================================================
RESET MOVLW B'00000111' ;Disable Comparator module's
MOVWF CMCON
BSF STATUS,RP0 ;Switch to register bank 1
MOVLW B'11111111' ;Set PIC options
MOVWF OPTION_REG ;Write the OPTION register.
CLRF INTCON ;Disable interrupts
MOVLW B'11111111'
MOVWF TRISB ;RB0-RB7 are inputs.
MOVLW B'01111100' ;RA0, RA1, RA7 ports are outputs
MOVWF TRISA
BCF STATUS,RP0 ;Switch Back to reg. Bank 0
MOVLW 6
MOVWF BITCNT
MOVLW 1
MOVWF TOGGLE
CLRF PORTA
CLRF PORTB
GOTO MAIN
MAIN CLRF LEDTMP
BTFSS PORTB,SW1
CALL SW_ONE
BTFSS PORTB,SW2
CALL SW_TWO
BTFSS PORTB,SW3
CALL SW_THREE
BTFSS PORTB,SW4
CALL SW_FOUR
GOTO MAIN
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
Det ska jag kolla upp!
Ställs det alltå in i brännarprogrammet?
Jag har kollat med oscilloskop att det verligen är en stabil likspänning på utgången, och ingen oscillerande signal.
Ska grotta ner mig i databladet nu!
EDIT: Har följande Config-bitar:
__CONFIG _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _INTRC_OSC_NOCLKOUT
Oscillatorn ska ju vara avslagen med denna inställning
Ställs det alltå in i brännarprogrammet?
Jag har kollat med oscilloskop att det verligen är en stabil likspänning på utgången, och ingen oscillerande signal.
Ska grotta ner mig i databladet nu!
EDIT: Har följande Config-bitar:
__CONFIG _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _INTRC_OSC_NOCLKOUT
Oscillatorn ska ju vara avslagen med denna inställning
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
- grapetonix
- Inlägg: 293
- Blev medlem: 14 juli 2004, 17:20:50
- Skype: grapetonix
- Ort: Hägersten, Stockholm
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56