chlapy, potřebuji malou pomoc, PIC si myslím, že mám logickou 1 na pinu RB0 a já na něm mám logickou nulu. Mám tam pull-down rezistor, vše jsem ověřil, zkusil jsem propojit "natvrdo" s log. 0. Nepomohlo, program vypadá následovně.... (Je pouze testovací, ale SIREN (nahrazeno ledkou) pořád svítí).
PIC16F628a
Kód: Vybrat vše
; // Inputs
#DEFINE S_CIL_1 PORTA,0 ; Senzor cilindru 1
#DEFINE S_CIL_2 PORTA,1 ; Senzor cilindru 2
#DEFINE S_ABS PORTA,2 ; Senzor absorbéru
#DEFINE S_VIC PORTA,3 ; Senzor víčka
#DEFINE S_TEMP PORTA,4 ; Senzor dostatku dílů v nájezdové ploše
#DEFINE ST_BT PORTB,0 ; Tlačítko START
; // Outputs
#DEFINE CIL_1 PORTB,1 ; Cilindr spodní
#DEFINE CIL_2 PORTB,2 ; Cilindr horní
#DEFINE MAINT_LED PORTB,3 ; Led signalizace nutnosti údržby. (Maintenance LED)
#DEFINE POWER_LED PORTB,4 ; Led signalizace OK STAVU
#DEFINE EINGINE PORTB,5 ; Vibrační buben pro kusy
#DEFINE SIREN PORTB,6 ; Výstup pro sirénu (maják)
BSF STATUS, RP0 ;Nastavení banky 1
MOVLW B'00000000' ;Uložením hodnoty do pracovního registru W
MOVWF TRISA ;Přesunutí z registru W do registru TRISA (Dochází k nastavení portů vstupně-výstupních pinů)
MOVLW B'00000000' ;Uložením hodnoty do pracovního registru W
MOVWF TRISB ;Přesunutí z registru W do registru TRISA (Dochází k nastavení portů vstupně-výstupních pinů)
BCF STATUS,RP0 ;Vrácení nastavení banky na 0
CLRF PORTA
MOVLW 0x07
MOVWF CMCON
BCF STATUS, RP1
;BSF STATUS, RP0
;MOVLW 0x1F
;MOVWF TRISA
;BCF STATUS, RP0
; INICIALIZACE ----------------------------------------------------------------------------------------------------
BSF SIREN
CALL WAIT_1000
BCF SIREN
CALL WAIT_1000
BSF SIREN
CALL WAIT_1000
BCF SIREN
CALL WAIT_1000
BSF SIREN
CALL WAIT_1000
BCF SIREN
CALL WAIT_1000
INIT BTFSS ST_BT
GOTO $-1
BSF SIREN
BTFSC ST_BT
GOTO $-1
BCF SIREN
GOTO INIT
CALL WAIT_2000
BCF SIREN
BCF CIL_1
GOTO INIT
ENDČasování jsem nepřikládal, myslím, že je to zbytečné.