 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
msmiha Član

Pridružen-a: Sob 26 Feb 2005 16:48 Prispevkov: 115 Aktiv.: 0.49 Kraj: Slovenske Konjice
|
Objavljeno: Pet Jan 23, 2009 3:52 pm Naslov sporočila: Težava s komparatorjem na 16F628A |
|
|
Zanima me če je kdo že uporabljal komparator na omenjenem PICu. Bolj natančno prvi komparator. Med tem ko z C2 nimam nikakršnih težav, nikakor ne morem spravit v pogon C1.
CMCON register imam nastavljen na CMCON = 0x33, kar pomeni da bi morala delovati oba komparatorja s skupno referenco, ki jo dobita preko Vref pina in sicer z invertiranimi izhodi. Zadeva čisto lepo deluje za C2 modul, pri C1 pa je bit, ki mi sporoča stanje izhoda koparatorja (C1OUT) vedno na 0 ne glede na to kaj dam na vhod.
Za referenco uporabljam napetostni delilnik, ki mi da na referenčni pin 3,3V.
Zanimivo je tudi da zadeva lepo deluje v PIC Simulator IDE, nikakor pa ne na dejanskem PICu. Sprva sem mislil da je kriv PIC, vendar sem poskusil z 5imi različnimi in z vsemi je enako! V čem bi lahko bila težava?
Ima kdo možnost in voljo sprobat če njemu dela C1 modul? _________________ Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem! |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.41
|
Objavljeno: Pet Jan 23, 2009 4:53 pm Naslov sporočila: |
|
|
A ni izhod OD (open drain), torej lahko samo "požira" tok?
Si probal dat upor med izhod in VDD? _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
msmiha Član

Pridružen-a: Sob 26 Feb 2005 16:48 Prispevkov: 115 Aktiv.: 0.49 Kraj: Slovenske Konjice
|
Objavljeno: Pet Jan 23, 2009 5:30 pm Naslov sporočila: |
|
|
gumby, kateri izhod imaš v mislih? Izhod komparatorja je v takšni konfiguraciji, ki jo imam jaz, povezan le z notranjim registrom in sicer CMCON bit 6 in 7. Tako da dejansko nimam fizično izhoda pripeljanega na nobeno nogico. Aja TRISA register je konfiguriran kot TRISA = 0x07. _________________ Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem! |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.41
|
Objavljeno: Pet Jan 23, 2009 9:31 pm Naslov sporočila: |
|
|
Nisem gledal v datasheet...
Daj prilepi program, da vidimo, kje je problem. _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.41
|
Objavljeno: Pet Jan 23, 2009 10:03 pm Naslov sporočila: |
|
|
Evo... sem probal in tole deluje brez problemov
Koda: |
#include <16F628A.h>
#use delay(internal=4M)
#use fast_io(B)
void main(void)
{
set_tris_b(0b11111100);
setup_comparator(A0_A2_A1_A2|CP1_INVERT|CP2_INVERT);
for(;;)
{
output_bit(PIN_B0,C1OUT);
output_bit(PIN_B1,C2OUT);
}
}
|
Verjetno imaš v programu kaj narobe... ne bi rekel, da je HW napaka _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
msmiha Član

Pridružen-a: Sob 26 Feb 2005 16:48 Prispevkov: 115 Aktiv.: 0.49 Kraj: Slovenske Konjice
|
Objavljeno: Pet Jan 23, 2009 11:12 pm Naslov sporočila: |
|
|
Program zgleda takole:
Koda: |
void inicial(){
PORTA = 0x00;
CMCON = 0x33;
TRISA = 0xFF;
PORTB = 0x00;
TRISB = 0x0C;
OPTION_REG = 0x07;
}
void main(){
inicial();
while(1) {
if(CMCON.C1OUT) {
PORTB.F0 = 1;
}
else PORTB.F0 = 0;
if(CMCON.C2OUT) {
PORTB.F1 = 1;
}
else PORTB.F1 = 0;
}
}
|
Treba je še omenit, da je zadeva spisana v mikroCju. Možno bi bilo tudi, da ima compiler kakšno napako...
Kaj bi bilo mogoče da bi napisal program v mojem stilu se pravi da bi samo prižgal eno LED diodo recimo na PORTB 0 in na PORTB 1. Ter bi ta program prevedel in naložil .hex datoteko, da bi sprobal če dela zadeva pri meni? Bil bi ti res hvaležen! Če ne bom bil prisiljen naredit kopmaratorja s pomočjo OP-ja  _________________ Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem! |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.41
|
Objavljeno: Pet Jan 23, 2009 11:41 pm Naslov sporočila: |
|
|
Moj program počne točno to... prižiga RB0 in RB1 glede na stanje komparatorjev. Tule imaš hex:
Koda: |
:1000000000308A0004280000840183131F30830518
:1000100083168E15073083129F00FC306600333044
:100020009F0083160508073885000330F700F70B9B
:10003000172883121F080C131F1B202806102128C5
:1000400006149F1B25288610262886141C2863006A
:02400E00703F01
:00000001FF
;PIC16F628A
|
_________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
msmiha Član

Pridružen-a: Sob 26 Feb 2005 16:48 Prispevkov: 115 Aktiv.: 0.49 Kraj: Slovenske Konjice
|
Objavljeno: Sob Jan 24, 2009 12:34 am Naslov sporočila: |
|
|
Zadeva dela, torej je problem v compilerju. I guess back to assambler  _________________ Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem! |
|
Nazaj na vrh |
|
 |
matijap Član

Pridružen-a: Sob 05 Jun 2004 23:24 Prispevkov: 230 Aktiv.: 0.97 Kraj: Žirovnica, LJ
|
Objavljeno: Sob Jan 24, 2009 1:18 am Naslov sporočila: |
|
|
Mogoče lahko pogledaš še assemblersko kodo, ki jo ustvari mikroC, da boš videl, za kaj točno gre. (gumb A v orodni vrstici). |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.41
|
Objavljeno: Sob Jan 24, 2009 1:21 am Naslov sporočila: |
|
|
Ja, prilepi asm ki ga naredi prevajalnik... mene tudi zanima, kaj čara.
Sicer CCS tudi nekaj štrika po nepotrebnem, ampak ta vsaj deluje na koncu  _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
msmiha Član

Pridružen-a: Sob 26 Feb 2005 16:48 Prispevkov: 115 Aktiv.: 0.49 Kraj: Slovenske Konjice
|
Objavljeno: Sob Jan 24, 2009 1:46 am Naslov sporočila: |
|
|
Heh sem nainštaliral najnovejšo verzijo gor 8.2 in sedaj dela normalno. Je pa res čudno, ker je v simulatorju delalo lepo na PIC-u pa nikakor ne in tudi koda je zgledala tako da bi moglo delat. Še enkrat hvala gumby za tvoj trud! _________________ Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem! |
|
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: 494 dni
Powered by phpBB © 2001, 2005 phpBB Group
|