Stránka 1 z 1

PIC 16F628A

Napsal: 01 úno 2011, 21:59
od pavoucisit
Dobrý den, začínám se učit programovat PIC a měl bych dotaz.
Definuji si
...........
#define LED1 PORTA,0
#define LED2 PORTA,1 atd
různé nastavení ..........
pak
MOVLW B `00000001`
MOVWF PORTA
rozsvítí se mi led 1
BSF LED2 a led 2 se mi rozsvítí, ale led 1 zhasne, proč mi BSF ovlivní celý port, když chci změnit jenom jeden bit portu?
Ladím a krokuji v PIC simulator IDE.
Děkuji za rady

Napsal: 01 úno 2011, 23:22
od Hula
To by nemělo.
A co ti to dělá když dáš MOVLW b'00000010' a pak BSF LED1.
Jestli nemas zaplej nejakej modul UARST,Comparator cokoliv...ted nevim co vse je pripojeny na Porta,1 a ze kdyz tam neco chpes tak by to mohlo ovlivnovat celej PORT.
Ale nevim jen takovej napad :?

Napsal: 01 úno 2011, 23:45
od feliz_navidad
Na RA0-3 jsou standartně vstupy komparátoru. Máš dobře nakonfigurovaný PORTA? Zkus přímo
BSF PORTA,0
BSF PORTA,1
Pokud to bude zlobit dál, nemáš.

Napsal: 02 úno 2011, 18:17
od pavoucisit
Děkuji za rady, nakonec jsem nastavil
komparator CMCON
...........................
bsf STATUS,5
movlw b'00001111'
movwf TRISB
movlw b'00000000'
movwf TRISA
bcf STATUS,5
movlw b'00000111'
movwf CMCON
movlw b'00000000'
..........................atd
opravdu docházelo k ovlivnění od komparatoru

Napsal: 03 úno 2011, 08:55
od Atlan
este pozor na RMW read modify write....

jenom info...

Napsal: 03 úno 2011, 13:53
od 67kapa
...u některých dalších piců je nutné nastavil vypnutí jak komparátorů (tvoje CMCON = 0x07),tak analogový převodník ANSEL = 0x00,respektive stačí nulovat jeden konkrétní bit,tuším.(např. u PIC12F675).To jen jako poznatek:-)