PIC16F682a - Nefunkční PIN RB0

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
paulie2907
Příspěvky: 28
Registrován: 09 úno 2016, 00:00

PIC16F682a - Nefunkční PIN RB0

#1 Příspěvek 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:
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#2 Příspěvek od forbidden »

Proč máš v TRISA a TRISB vše jako output?
paulie2907
Příspěvky: 28
Registrován: 09 úno 2016, 00:00

#3 Příspěvek 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ý :(
Naposledy upravil(a) paulie2907 dne 17 bře 2016, 12:13, celkem upraveno 1 x.
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#4 Příspěvek 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.
paulie2907
Příspěvky: 28
Registrován: 09 úno 2016, 00:00

#5 Příspěvek 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 ...
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#6 Příspěvek 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.
paulie2907
Příspěvky: 28
Registrován: 09 úno 2016, 00:00

#7 Příspěvek 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 ...
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#8 Příspěvek 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.
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#9 Příspěvek od Atlan »

Myslim ze to ma ten vstup za sebov. RIP
hakamusai
Příspěvky: 939
Registrován: 17 dub 2007, 00:00

#10 Příspěvek 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 :) )
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“