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 

Pic16f870 uporaba PORTA za prižiganje led diod
Pojdi na stran Prejšnja  1, 2
 
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
gumby
Član
Član



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

PrispevekObjavljeno: Ned Jun 03, 2012 5:55 pm    Naslov sporočila:   Odgovori s citatom

Na GP4 imaš CLKOUT, torej LED ne gori stalno, ampak utripa. Ne glede na stanje na vhodih.
Za GP5 moraš program spremenit.

Pa razliko med = in == naštudiraj. Ni vseeno.

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



Pridružen-a: Sob 28 Maj 2011 15:19
Prispevkov: 29
Aktiv.: 0.18
Kraj: Ljubljana

PrispevekObjavljeno: Ned Jun 03, 2012 6:24 pm    Naslov sporočila:   Odgovori s citatom

Ja pardon, glede operatorjev poznam razliko, sem se zatipkal.

Glede clocka... torej če uporabljam čipov notranji clock imam 2 opciji - CLKOUT in No Clock oz IO. Kaj to pomeni, da dejansko v primeru CLKOUT dobivam na tem pinu clk impulz? Bi ga v primeru No Clock lahko uporabil kot output?

Mogoče trapasta vprašanja, ampak do zdaj sem se ukvarjal samo s kontrolerji (Simatic), z mikro pa še ne.

Smile
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Alex17
Član
Član



Pridružen-a: Ned 28 Feb 2010 21:46
Prispevkov: 476
Aktiv.: 2.76
Kraj: Ljutomer

PrispevekObjavljeno: Ned Jun 03, 2012 7:51 pm    Naslov sporočila:   Odgovori s citatom

Točno tako kot si napisal za CLKOUT.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Parker
Neznanec
Neznanec



Pridružen-a: Pet 22 Jun 2012 18:02
Prispevkov: 8
Aktiv.: 0.06
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jun 22, 2012 6:32 pm    Naslov sporočila:   Odgovori s citatom

Zivjo

Jaz se tudi igram s priziganjem ledic. Kolega mi je predlagal uporabo shift registrov oziroma driverja TLC5927 za 16 ledic ampak mi ga nikakor ne uspe usposobit. Bi mi lahko nekdo razlozil na kaksen nacin to priklopit na PIC in spravit v pogon. Sicer sem ze sam bral datasheet in povezal, pa me prosim popravite ce sem kaj zgresil

PIN1 = GND (povezan na GND)
PIN2 = SDI (povezan na PORTE.F0)
PIN3 = CLK (povezan na PORTE.F1)
PIN4 = LE (povezan na PORTE.F2)
PIN5 - PIN20 (tukaj gor imam ledice)
PIN21 - OE (sem povezal na GND)
PIN22 - SDO (ni povezan nikamor)
PIN23 - R-EXT (ni povezan nikamor)
PIN24 - VDD (povezan na +5V)



Tukaj pa je izvorna koda za mikroc. Kje sem ga polomil?
Koda:
#define latch_pin PORTE.F2                  // TLC5927 PIN #4
#define clock_pin PORTE.F1                  // TLC5927 PIN #3
#define data_pin PORTE.F0                  // TLC5927 PIN #2

char* leds = "0000000000000000";

void write_driver_tlc(char* vrednost) {
   unsigned int i;

   i = 0;
   while(i < 16) {
      if(vrednost[i] == '1')
         data_pin = 1;
      else
         data_pin = 0;

      latch_pin = 1;
      latch_pin = 0;
      i++;
   }

   clock_pin = 1;
   clock_pin = 0;
}

void main(void) {
   ADCON1 |= 0x0F;
   CMCON |= 0x07;

   TRISE = 0x00;
   PORTE = 0x00;

   while(1) {
      leds = "1111000011110000";
      write_driver_tlc(leds);
   }
}
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.: 19.64

PrispevekObjavljeno: Pet Jun 22, 2012 7:00 pm    Naslov sporočila:   Odgovori s citatom

Parker je napisal/a:
PIN23 - R-EXT (ni povezan nikamor)

Poglej še 1x, kaj je funkcija tega pina...

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



Pridružen-a: Pet 22 Jun 2012 18:02
Prispevkov: 8
Aktiv.: 0.06
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jun 22, 2012 7:04 pm    Naslov sporočila:   Odgovori s citatom

Aja ups. Sem povezal gor 300 ohmski upor na GND in tudi ne dela.
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.: 19.64

PrispevekObjavljeno: Pet Jun 22, 2012 7:07 pm    Naslov sporočila:   Odgovori s citatom

Ne dela, ker z clock pinom ne počneš nič.

edit: zamenjaj clock in latch...

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



Pridružen-a: Pet 22 Jun 2012 18:02
Prispevkov: 8
Aktiv.: 0.06
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jun 22, 2012 7:12 pm    Naslov sporočila:   Odgovori s citatom

Si mislil tako?

Koda:
void write_driver_tlc(char* vrednost) {
   unsigned int i;

   i = 0;
   while(i < 16) {
      if(vrednost[i] == '1')
         data_pin = 1;
      else
         data_pin = 0;

      clock_pin = 1;
      clock_pin = 0;
      i++;
   }

   latch_pin = 1;
   latch_pin = 0;
}


Ker tudi ne deluje. Drugace ta ista koda mi lepo deluje na nekem drugem 8 bitnem shift registru (z razliko da grem tam s for zanko do 7 in ne 15)

EDIT: Samo da se prepricam. Ce dam na R-EXT upor 300ohm in na GND, potem ne rabim 16 uporov za ledice? Ce predvidevamo, da so vse ledice enake in zelim na vseh isto svetilnost?
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.: 19.64

PrispevekObjavljeno: Pet Jun 22, 2012 7:23 pm    Naslov sporočila:   Odgovori s citatom

Probaj shiftat same enice, da vklopiš vse izhode - si mogoče LED narobe obrnil?
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Parker
Neznanec
Neznanec



Pridružen-a: Pet 22 Jun 2012 18:02
Prispevkov: 8
Aktiv.: 0.06
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jun 22, 2012 7:25 pm    Naslov sporočila:   Odgovori s citatom

Sem ze poslal same enke, pa ni razlike. Tudi pomeril z multimetrom vse izhode, povsod je 0. Ledica je pravilno obrnjena, povezave sem tudi preveril tako da res nimam ideje kje bi lahko bil problem. Ali je obvezen kondenzator 100nF med VDD in GND driverja, ker ga trenutno nimam?

Nazadnje urejal/a Parker Pet Jun 22, 2012 7:26 pm; skupaj popravljeno 1 krat
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.: 19.64

PrispevekObjavljeno: Pet Jun 22, 2012 7:26 pm    Naslov sporočila:   Odgovori s citatom

Ne rabiš nobenih uporov v seriji z LED... upor je v tem primeru samo dodatno (nepotrebno) breme za čip. Tok skozi LED določiš z vrednostjo upora REXT (glej sliko 11 v datasheetu).
_________________
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.: 19.64

PrispevekObjavljeno: Pet Jun 22, 2012 7:28 pm    Naslov sporočila:   Odgovori s citatom

0V na izhodu pomeni, da je izhod aktiven... a imaš LED vezan proti masi?
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Parker
Neznanec
Neznanec



Pridružen-a: Pet 22 Jun 2012 18:02
Prispevkov: 8
Aktiv.: 0.06
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jun 22, 2012 7:35 pm    Naslov sporočila:   Odgovori s citatom

Aja hmmm. Jaz imam iz izhodnega pina povezano na anodo ledice, katoda ledice pa gre na GND ja. Ne glede na to kaj shiftam, na vseh izhodih sem izmeril 0.4V (takrat ko je izhodni pin v zraku). Ce pravis da je izhod aktiven ko je na pinu 0V, sem poskusil obrniti ledico in drugi konec dal na +5V in tudi ne sveti Shocked
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.: 19.64

PrispevekObjavljeno: Pet Jun 22, 2012 7:42 pm    Naslov sporočila:   Odgovori s citatom

Anodo veži na VCC, katodo pa na izhod. Pa datasheet drugič malo bolj pazljivo preglej... Wink
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Parker
Neznanec
Neznanec



Pridružen-a: Pet 22 Jun 2012 18:02
Prispevkov: 8
Aktiv.: 0.06
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jun 22, 2012 8:09 pm    Naslov sporočila:   Odgovori s citatom

Super, deluje tako kot mora. Je bilo se nekaj slabih povezav poleg tega da nisem vedel da je na izhodu 0 ko je ta aktiven. Najlepsa hvala za trud in pomoc gumby Wink
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
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
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: 78 dni


Powered by phpBB © 2001, 2005 phpBB Group