|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
GregorN Član
Pridružen-a: Tor 20 Nov 2007 7:48 Prispevkov: 1162 Aktiv.: 5.81 Kraj: Maribor
|
Objavljeno: Sre Jul 14, 2010 1:25 am Naslov sporočila: PIC16F876A - Comparator |
|
|
No kot naslov že pove, da se trudim naučiti uporabljanja komparatorjev v omenjenem PICu. Začel sem z datasheetom ter internetom in poizkušam narediti najbolj osnovno kodo, da bo komparator glede na njegov -INP in +INP prižigal ter ugašal LED diodo.
Do sedaj mi je uspelo skupaj spraviti naslednjo kodo toda mi ne uspe najbolje simulirati. V simulatorju si v logičnem analizatorju odprem C1INP (Uporabil bom prvi komparator), C1OUT in RB5. V Stimulus pa si nastavim C1INP katerega bi prožil in glede na to stanje bi komparator preklopil RB5. Ko simuliram ter prožim C1INP se na logičnem analizatorju ne zgodi nič, ne prikaže niti da sem prožil C1INP. Malce me že ura daje
Koda: |
;Datum: Junij 2010
;Avtor: Gregor Nikolic
list p=16f876a
#include "P16f876a.INC"
__config _CP_OFF &_WDT_OFF &_PWRTE_ON &_XT_OSC &_CPD_OFF &_BODEN_OFF
org 0x000
goto Glavni
org 0x004
;*********************************** GLAVNI PROGRAM ********************************
Glavni
banksel TRISB ;Preidemo v primerno banko registra TRISB
clrf TRISB ;Počistimo register TRISB tako so vsi definirani kot izhod
movlw b'01000010' ;Vrednost za nastavitev komparatorja
; 1 1 = C1 VIN+ < C1 VIN-
; 0 neinvertiran izhod prvega komparatorja
; 010 nastavitev dveh neodvisnih komparatorjev
movwf CMCON ;Prenesemo nastavitev v register CMCON
banksel PORTB
clrf PORTB
btfsc CMCON,C1OUT
bsf PORTB,5
btfss CMCON,C1OUT
bcf PORTB,5
goto Glavni
end |
_________________ LP! Gregor |
|
Nazaj na vrh |
|
|
mucek4 Član
Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 13.24 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Sre Jul 14, 2010 7:29 am Naslov sporočila: |
|
|
Vsakič nastavljaš CMCON in TRISB. Ne vem, vendar lahko se zgodi, da komparatorji po nastavitvah nekaj časa ne delajo. Nastavitve naredi na začetku in zanko naredi samo za nastavljanje pinov.
|
|
Nazaj na vrh |
|
|
GregorN Član
Pridružen-a: Tor 20 Nov 2007 7:48 Prispevkov: 1162 Aktiv.: 5.81 Kraj: Maribor
|
Objavljeno: Sre Jul 14, 2010 8:48 am Naslov sporočila: |
|
|
Sem tako naredil in ni razlike v simulaciji :S
Koda: |
;Datum: Junij 2010
;Avtor: Gregor Nikolic
list p=16f876a
#include "P16f876a.INC"
__config _CP_OFF &_WDT_OFF &_PWRTE_ON &_XT_OSC &_CPD_OFF &_BODEN_OFF
org 0x000
goto Glavni
org 0x004
;*********************************** GLAVNI PROGRAM ********************************
Glavni
banksel TRISB ;Preidemo v primerno banko registra TRISB
clrf TRISB ;Počistimo register TRISB tako so vsi definirani kot izhod
movlw b'01000010' ;Vrednost za nastavitev komparatorja
; 1 1 = C1 VIN+ < C1 VIN-
; 0 neinvertiran izhod prvega komparatorja
; 010 nastavitev dveh neodvisnih komparatorjev
movwf CMCON ;Prenesemo nastavitev v register CMCON
Main
banksel PORTB
clrf PORTB
btfsc CMCON,C1OUT
bsf PORTB,5
btfss CMCON,C1OUT
bcf PORTB,5
goto Main
end |
_________________ LP! Gregor |
|
Nazaj na vrh |
|
|
GregorN Član
Pridružen-a: Tor 20 Nov 2007 7:48 Prispevkov: 1162 Aktiv.: 5.81 Kraj: Maribor
|
Objavljeno: Sre Jul 14, 2010 11:58 am Naslov sporočila: |
|
|
Sedaj sem razmišljal da pravzaprav morem prožiti pina RA0 in RA3 kjer sta vhoda komparatorja, v simulaciji sta tipki mrtvi. Čudno mi je tudi da mi ne vstavi v register CMCON pravilne vrednosti kar je razvidno iz watch okna.
Trenutna koda;
Koda: |
;Datum: Junij 2010
;Avtor: Gregor Nikolic
list p=16f876a
#include "P16f876a.INC"
__config _WDT_OFF &_PWRTE_ON &_XT_OSC &_LVP_OFF &_BODEN_OFF
org 0x000
goto Glavni
org 0x004
;*********************************** GLAVNI PROGRAM ********************************
Glavni
banksel TRISB ;Preidemo v primerno banko registra TRISB
clrf TRISB ;Počistimo register TRISB tako so vsi definirani kot izhod
movlw b'00001001'
movwf TRISA
banksel PORTB
clrf PORTB
movlw b'01000010' ;Vrednost za nastavitev komparatorja
; 1 1 = C1 VIN+ < C1 VIN-
; 0 neinvertiran izhod prvega komparatorja
; 010 nastavitev dveh neodvisnih komparatorjev
banksel CMCON
movwf CMCON ;Prenesemo nastavitev v register CMCON
Main
btfsc CMCON,C1OUT
bsf PORTB,5
btfss CMCON,C1OUT
bcf PORTB,5
goto Main
end |
Opis: |
|
Velikost datoteke: |
517.63 KB |
Pogledana: |
19 krat |
|
_________________ LP! Gregor |
|
Nazaj na vrh |
|
|
GregorN Član
Pridružen-a: Tor 20 Nov 2007 7:48 Prispevkov: 1162 Aktiv.: 5.81 Kraj: Maribor
|
Objavljeno: Čet Jul 15, 2010 9:25 am Naslov sporočila: |
|
|
Še mi ni uspelo ni nihče delal s komparatorji v picu? Poizkušam že vse mogoče. Upam da se najde nekdo ki ima znanja o tem.
_________________ LP! Gregor |
|
Nazaj na vrh |
|
|
mucek4 Član
Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 13.24 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Čet Jul 15, 2010 9:53 am Naslov sporočila: |
|
|
Lahko da ni problem v komparatorjih, ampak v simulaciji komparatorjev.
|
|
Nazaj na vrh |
|
|
GregorN Član
Pridružen-a: Tor 20 Nov 2007 7:48 Prispevkov: 1162 Aktiv.: 5.81 Kraj: Maribor
|
Objavljeno: Čet Jul 15, 2010 1:38 pm Naslov sporočila: |
|
|
Sem sestavil na testni in ne deluje.
_________________ LP! Gregor |
|
Nazaj na vrh |
|
|
gumby Član
Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 19.66
|
Objavljeno: Čet Jul 15, 2010 8:38 pm Naslov sporočila: |
|
|
Nastavi banke v Main zanki, pa bo delalo... CMCON in PORTB nista v isti
_________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
|
GregorN Član
Pridružen-a: Tor 20 Nov 2007 7:48 Prispevkov: 1162 Aktiv.: 5.81 Kraj: Maribor
|
Objavljeno: Čet Jul 15, 2010 10:04 pm Naslov sporočila: |
|
|
Hvala Tibor za vso pomoč, sva usposobla komparator Prilagam osnovno kodo za vse ostale. Koda je čisto toliko da dela, nisem je še minimaliziral.
Koda: |
;Datum: Junij 2010
;Avtor: Gregor Nikolic
list p=16f876a
#include "P16f876a.INC"
__config _WDT_OFF &_PWRTE_ON &_XT_OSC &_LVP_OFF &_BODEN_OFF
org 0x000
goto Glavni
org 0x004
;*********************************** GLAVNI PROGRAM ********************************
Glavni
banksel TRISB ;Preidemo v primerno banko registra TRISB
clrf TRISB ;Počistimo register TRISB tako so vsi definirani kot izhod
movlw b'00001001'
movwf TRISA
banksel PORTB
clrf PORTB
movlw b'00000010' ;Vrednost za nastavitev komparatorja
; 1 1 = C1 VIN+ < C1 VIN-
; 0 neinvertiran izhod prvega komparatorja
; 010 nastavitev dveh neodvisnih komparatorjev
banksel CMCON
movwf CMCON ;Prenesemo nastavitev v register CMCON
Main
banksel CMCON
btfss CMCON,C1OUT
call Vk
banksel CMCON
btfsc CMCON,C1OUT
call Izk
goto Main
Vk
banksel PORTB
bsf PORTB,5
return
Izk
banksel PORTB
bcf PORTB,5
return
end |
_________________ LP! Gregor |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 73 dni
Powered by phpBB © 2001, 2005 phpBB Group
|