www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Težava s komparatorjem na 16F628A

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.49
Kraj: Slovenske Konjice

PrispevekObjavljeno: Pet Jan 23, 2009 3:52 pm    Naslov sporočila:  Težava s komparatorjem na 16F628A Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.41

PrispevekObjavljeno: Pet Jan 23, 2009 4:53 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.49
Kraj: Slovenske Konjice

PrispevekObjavljeno: Pet Jan 23, 2009 5:30 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.41

PrispevekObjavljeno: Pet Jan 23, 2009 9:31 pm    Naslov sporočila:   Odgovori s citatom

Nisem gledal v datasheet...
Daj prilepi program, da vidimo, kje je problem.

_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.41

PrispevekObjavljeno: Pet Jan 23, 2009 10:03 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.49
Kraj: Slovenske Konjice

PrispevekObjavljeno: Pet Jan 23, 2009 11:12 pm    Naslov sporočila:   Odgovori s citatom

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 Mad

_________________
Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.41

PrispevekObjavljeno: Pet Jan 23, 2009 11:41 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.49
Kraj: Slovenske Konjice

PrispevekObjavljeno: Sob Jan 24, 2009 12:34 am    Naslov sporočila:   Odgovori s citatom

Zadeva dela, torej je problem v compilerju. I guess back to assambler Very Happy
_________________
Edini način da odkrijemo meje mogočega je da, jih prestopimo in se znajdemo v nemogočem!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
matijap
Član
Član



Pridružen-a: Sob 05 Jun 2004 23:24
Prispevkov: 230
Aktiv.: 0.97
Kraj: Žirovnica, LJ

PrispevekObjavljeno: Sob Jan 24, 2009 1:18 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 18.41

PrispevekObjavljeno: Sob Jan 24, 2009 1:21 am    Naslov sporočila:   Odgovori s citatom

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 Very Happy

_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
msmiha
Član
Član



Pridružen-a: Sob 26 Feb 2005 16:48
Prispevkov: 115
Aktiv.: 0.49
Kraj: Slovenske Konjice

PrispevekObjavljeno: Sob Jan 24, 2009 1:46 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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