Dobrý den,
koupil jsem si pickit2 s 16F690 a prokousávám se pomalu programováním piců. Teď jsem narazil na problém, který nedokážu sám vyřešit. Na desku pickitu2 jsem si přidal dvě tlačítka navíc na BR6 a BR5, které při sepnutí pustí na pin logickou jedničku, jinak je tam přes odpor nula. Těmito tlačítku jsem chtěl ovládat diody na PORTC.
....
....
Start:
bsf STATUS,RP0
movlw 0xFF
movwf TRISB ; vsechny B vstup - tlacitka
clrf TRISC ; vsechny C vystup - diody
bcf STATUS,RP0
zacatek
movf PORTB,w
btfsc STATUS,Z
goto zacatek
bsf PORTC,2
call cekej ; procedura zpozpozdeni
bcf PORTC,2
goto zacatek
....
....
kod nahoře funguje, ale jen pro tlačítko na BR6 na tlačítko na RB5 nereaguje. Zkoušel jsem i rovnou testovat hodnotu bitu na RB5, ale také to nereaguje. Navíc když se dotknu (stačí se přiblížit 0.5mm ) k pinu RB7, tak se rozsvítí dioda a zůstane rozsvícená. Zkoušel jsem RB7 přepnout jako výstupní pin ( .... movlw b'011111111' movwf TRISB .... ), ale výsledek je stejný. Budu vděčný za každou radu.
problém začátečník pickit2/16F690
Moderátor: Moderátoři
- forbidden
- Příspěvky: 8808
- Registrován: 14 úno 2005, 01:00
- Bydliště: Brno (JN89GF)
- Kontaktovat uživatele:
Tak v tom případě to nějak nechápu, programu by mělo být úplně jedno na kterým bitu portu B nastane změna na log. 1, LEDku by měl rozsvítit vždycky. Kdyby tam nebyla ta čekací smyčka, tak by se podivný chování dalo svést na zákmity, ale takto by neměly nijak vadit.
Jediný co mě ještě napadá je, jestli nemáš zaplý třeba analogový vstupy na portu B. Nemám teď při ruce datasheet 16F690 a neznám ji z hlavy. Prostě prostuduj, jestli jednotlivý bity portu B nemají nějakou jinou funkci, než digitální vstup.
Jediný co mě ještě napadá je, jestli nemáš zaplý třeba analogový vstupy na portu B. Nemám teď při ruce datasheet 16F690 a neznám ji z hlavy. Prostě prostuduj, jestli jednotlivý bity portu B nemají nějakou jinou funkci, než digitální vstup.