Nove PIC16 a PIC18 - Porty

Jan Waclawek konfera na efton.sk
Pondělí Červen 24 14:24:10 CEST 2024


[preposielam]

Ahojte,

dakujem vsetkym za odpovede. Takze to LATx eliminuje vlastne potrebu jednej
pamatovej bunky RAM na buffer portu. Ja sa snazim vsade pouzivat
instrukcie BCF a BSF a na vstup BTFSS a BTFSC. Takze tie chyby velmi
nevidim. Prepisem teda vsetky vystupy na PORTx na registre LATx. Sice budem
musiet prepisat cely include file s definiciami pinov, ale neda sa nic
robit, doba pokrocila, tak musim ist s dobou aj ja. :)
A.

>>>

Ahoj,

Problém je se čtením.
Tedy pokud máš na daném portu něco, co je citlivé na čtení, tak zápis
do PORT* ti provede čtení/modifikace/zápis. Zatímco zápis do LAT*
neprovede čtení toho portu, ale jen toho, co se minule zapsalo.

Běžné problémy kdy to vadí jsou:
1) čtení smaže interrupt on change, takže pokud máš na stejném portu
IoC, tak si teoreticky můžeš smazat jeho přísnak dřív než se
vyhodnotí.
2) při použití open drain - zapsal jsi 1, ale někdo jiný na stejnou
linku píše 0, takže se při čtení přečte 0 a zapíše se i do tvého
výstupu.

P.S. - na PICech je každá operace čtení/modifikace/zápis, ačkoli se to
ne vždy zdá. Třeba u operací typu BSF se tomu člověku nechce věřit.



Další informace o konferenci Hw-list