Stránka 1 z 1

PIC16F682a - Nefunkční PIN RB0

Napsal: 17 bře 2016, 09:59
od paulie2907
Zdravím,

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é. :roll: :roll:

Napsal: 17 bře 2016, 11:39
od forbidden
Proč máš v TRISA a TRISB vše jako output?

Napsal: 17 bře 2016, 12:04
od paulie2907
forbidden píše:Proč máš v TRISA a TRISB vše jako output?



Pravda, , zajímavé je, že mi to normálně fungovalo :D, přepral jsem všechny TRISB na 1čky, kromě 6ky (testovací dioda) a výsledej je pořát stejný :(

Napsal: 17 bře 2016, 12:08
od forbidden
Zkontroluj, jestli máš všechno jako digitál a vyplej komparátor. Z hlavy to nezkontroluju. A vůbec povypínaný periferie, který nepoužíváš, pro jistotu.

Napsal: 17 bře 2016, 12:29
od paulie2907
forbidden píše:Zkontroluj, jestli máš všechno jako digitál a vyplej komparátor. Z hlavy to nezkontroluju. A vůbec povypínaný periferie, který nepoužíváš, pro jistotu.


Už to mám povypínané, hledal jsem i na internetu, ale to je v podstatě totéž jako v datasheetu a nefunguje to ...

Napsal: 17 bře 2016, 12:45
od forbidden
Tak zbývá jedině úplně holej testovací kód k otestování toho pinu, jestli není chyba v HW. Napiš novej, jen s nezbytnou inicializací a otestuj tlačítko.

Napsal: 17 bře 2016, 12:47
od paulie2907
forbidden píše:Tak zbývá jedině úplně holej testovací kód k otestování toho pinu, jestli není chyba v HW. Napiš novej, jen s nezbytnou inicializací a otestuj tlačítko.


To je právě ten zmíněný kód nahoře, ale zkusím to napsat znovu ale bude to spíš HW, taky si myslím ...

Napsal: 17 bře 2016, 13:11
od forbidden
To rozhodně není nezbytně nutný kód k otestování tlačítka na RB0. Je tam spousty bordelu, u kterýho chyba může způsobit kdoví co. Napiš novej, jen s inicializací RB0 jako vstup, vypnutí periférií a poté testem tlačítka, nic víc.

Napsal: 17 bře 2016, 19:15
od Atlan
Myslim ze to ma ten vstup za sebov. RIP

Napsal: 18 bře 2016, 08:22
od hakamusai
Taky mi to připadá.
Tyhle PICka jsou háklý na správný nastavení HW.V úplných začátcích s PIC jsem si na tomto vylámal zuby.Odpálil jsem čtyři kousky,než jsem přišel na to ,že musí být komparátor zakázaný.(těch pastí je tam víc :) )