Stránka 1 z 1

PORTE na PIC 16F877A (v desce ASIX PVK40)

Napsal: 28 zář 2009, 11:33
od Johny_Servis
Zdravím

Programuju v MPLABu a tvořím si program, co ovládá bargraf - poslední 2 dílky jsou na PORTuE.
- normálka nastavím reg. TRISE (bank1) na 0 (jako output) a pak v hlavním programu chci postupně rozsvítit 9 a 10 segment a dělám to takhle:

...
bsf PORTE,.0
call cekej
bsf PORTE,.1
...

problém je v tom, že se mi zapnou oba dva piny (0 i 1) zároveň - no prostě ty 3 nožičky na PORTuE nejdou ovládat nezávisle na sobě.
Důsledně dodržuji přepínání mezi paměťovými stránkami - tento problém se vyskytuje jak v simulaci v MPLABu, tak i v reálu.
Neznáte někdo nějaké řešení?
Díky

Napsal: 28 zář 2009, 12:16
od Atlan
a na co je tam ta bodka pri cislici?

Napsal: 28 zář 2009, 12:35
od Johny_Servis
Atlan: To je syntaxe asembleru, aby věděl, že se jedná o dekadické číslo (zeleně to zvýrazní a líp se v tom orientuje).
tj.

...
bsf PORTE,.0 - nastav nultý bit portuE
call cekej
bsf PORTE,.1 - nastav první bit portuE
...

být to tam nemusí, ale už sem tak zvyknul - na funkci to nemá vliv (a na funkci živočicháře už vůbec né :-)

Napsal: 28 zář 2009, 12:52
od Mendor
Podle návodu k PVK40 se led bargrafu aktivují logickou nulou, takže bcf PORTE, 0

Napsal: 28 zář 2009, 13:56
od Johny_Servis
Jo jasně bcf - tak to mám v programu, ale tento příspěvek sem psal z hlavy (nečuměl sem do programu), proto sem omylem uvedl bsf - jako ono to chodí, ale poslední dva segmenty se rozsvítí oba dva najednou - jinak je tam DIP, kterým se E0 a E1 připojí k bargrafu - to mám také ošetřené

Napsal: 28 zář 2009, 14:22
od Mendor
Zkus jeden DIP rozpojit jestli není chyba na desce.

Napsal: 28 zář 2009, 16:09
od eljaro
a v TRISE je nastaven ten bit jak o výstupní ?