problém začátečník pickit2/16F690

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

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
pepelopez
Příspěvky: 23
Registrován: 17 pro 2009, 01:00

problém začátečník pickit2/16F690

#1 Příspěvek od pepelopez »

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.

Uživatelský avatar
forbidden
Příspěvky: 8808
Registrován: 14 úno 2005, 01:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#2 Příspěvek od forbidden »

Prvně bych se zaměřil na to, jak jsou vstupní piny staženy k zemi. Jestliže píšeš, že se stačí k pinu přiblížit, aby PIC zaznamenal nějakou reakci, tak buď není pin stažený k zemi vůbec, nebo velmi vysokou hodnotou odporu. Anebo jseš velmi nabitej statikou :D Já většinou dávám 10 k.

Uživatelský avatar
pepelopez
Příspěvky: 23
Registrován: 17 pro 2009, 01:00

#3 Příspěvek od pepelopez »

Přizemnil jsem nepoužité vstupní piny (RB) 10k. Problém s rozsvěcující diodou se už nestává, ale funkce tlačítek je pořád stejná.

Uživatelský avatar
forbidden
Příspěvky: 8808
Registrován: 14 úno 2005, 01:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#4 Příspěvek od forbidden »

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.

Uživatelský avatar
pepelopez
Příspěvky: 23
Registrován: 17 pro 2009, 01:00

#5 Příspěvek od pepelopez »

nastavil jsem registr ANSELH na nulu a druhé tlačítko už také běží. Asi tam byl zapnutý analogový vstup a proto to nešlo. Moc děkuji za dobré rady

Odpovědět

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