PIC 16F628A

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
pavoucisit
Příspěvky: 176
Registrován: 02 lis 2008, 00:00
Bydliště: Havířov

PIC 16F628A

#1 Příspěvek 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
Uživatelský avatar
Hula
Příspěvky: 47
Registrován: 01 dub 2008, 00:00
Kontaktovat uživatele:

#2 Příspěvek 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 :?
Uživatelský avatar
feliz_navidad
Příspěvky: 959
Registrován: 15 říj 2009, 00:00

#3 Příspěvek 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áš.
Uživatelský avatar
pavoucisit
Příspěvky: 176
Registrován: 02 lis 2008, 00:00
Bydliště: Havířov

#4 Příspěvek 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
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#5 Příspěvek od Atlan »

este pozor na RMW read modify write....
Uživatelský avatar
67kapa
Příspěvky: 73
Registrován: 31 říj 2010, 00:00

jenom info...

#6 Příspěvek 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:-)
Odpovědět

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