C ... vremensko ogranicenje

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

C ... vremensko ogranicenje

Post by 0leee »

molim vas,program u c-u za neki pic bilo koji samo da vidim naredbe za vremenska ogranicenja,npr da dioda svijetli 10 sekundi,te da se nakon toga ugasi
_heX
Napredujem
Napredujem
Posts: 136
Joined: 29-10-2009, 20:09
Location: Republika Zagorje

Re: C ... vremensko ogranicenje

Post by _heX »

Evo, PIC16F628A @ 8MHz-a (za neki drugi pic moras samo prilagoditi mcu_init funkciju), pisano za HI-TECH PICC kompajler.
Program ti mjenja stanje na RB0 pinu svakih 10s.
Attachments
code.zip
(1.42 KiB) Downloaded 290 times
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

Ej puno ti hvala idem isprobati,dobivao sam informacije da je moguce samo nekoliko milisekundi,za vece ogranicenje kao da trebam koristiti prekide,hvala ...
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

sad sam bio pogledao cod,ipak je pomocu funkcija,mislio sam da postoji jednostavniji nacin ... samo zelim da kad pritisnem tipku LED svijetli 5 sekundi,te se ugasi nakon,a tipka ostane pritisnuta ...
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

JA POKUSAVAM na ovaj neki nacin ,ali nikako ne mogu vise od sekunde da svijetli,mozes li ovo korigirati,ako ima smisla ... fakat mi je nejasno to,sjecam se u osnovnoj skoli u Qbasicu kad sam programirao rob.ruku samo sam napisao sleep 5 nest tipa toga i sve super,a u ovome c-u ovo vremensko ogranicenje mi se ne svidja,ali zelim to shvatiti ...

#include<htc.h>
#define _XTAL_FREQ 20000000

void DelayS()
{

while(1){
__delay_ms(250);
__delay_ms(250);
__delay_ms(250);
__delay_ms(250);
}
}

void main(void)
{
TRISA=0xff;
TRISB=0x00;
PORTB=0;


while(1) {
if(RA0==0){ RB0 = 1;
DelayS(10);
}

}
}

jesam li uopce na dobrom putu ...
abc
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 498
Joined: 08-03-2007, 20:19
Location: Hrvatska

Re: C ... vremensko ogranicenje

Post by abc »

Bez ljutnje ali nemoj uciti iz tih debilnih primjera, pozivanje delay funkcija ima smisla do recimo max 1ms da bi pojednostavio program, ustvari delay funkcije ne treba uopste koristiti. Svi mikrokontroleri imaju po nekoliko tajmera koji cekaju da se setuju i ukljuce i da rade taj sporedni posao a samom CPU ostavi nesto korisnije da radi.

Recimo taj tvoj primjer od gore radi to da ne radi nista, osim sto je CPU mikrokontrolera u petlji u kojoj ne radi nista korisno tih 10 sekundi.

Pogledaj neki primjer za setovanje tajmera da ukljucuje interupt(prekid). Znaci svaki puta kad tajmer "nazovimo" izbroji on ce ukljuciti prekid, ti samo treba da brojis te prekide, recimo imas na svakih 5ms prekid(interupt) , treba da izbrojis za 10s je 10000ms / 5ms = 2000 , kada izbrojis do 2000 prekida, resetuj brojac i ukljuci ili iskljuci sta ti je potrebno. A 99% vremena ti ostaje CPU slobodan da nesto radi osim da vrti beskorisnu petlju.

Kako radis sa tipkom moras rijestiti i debounce (istitravanja kontakata) , ako mislis raditi i nesto drugo osim cekati 10s.

Nemam vremena, tvoj primjer radi tako da samo jednom ukljuciti izlazni pin i gotovo, poslije nema smisla vise ni da pritiskas tipku kad ostaje RB0 na jedinici.

Radis u C-u ,imas gotove primjere u kompajleru.
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

Hvala na objasnjenju,dobro,ja sam stavio ovdje diodu,ali ubiti mi treba za programiranje robotske ruke,tj moze i bez da pritisnem tipku,npr.Kad ukljućim napajanje da elektromotor radi 5 sekundi ...
,te stane,onda ukljucim drugi elektromotor koji radi npr.10 sekundi ... to me zanima,sad sam shvatio da se to ne radi s delay-om ... pokusavam shvatiti kako da izlaz bude aktivan sekundi koliko ja da odredim,nigdje ne mogu nac neki lijep primjer toga ...
buco-1
Napredujem
Napredujem
Posts: 105
Joined: 24-10-2010, 21:22

Re: C ... vremensko ogranicenje

Post by buco-1 »

0leee wrote:pokusavam shvatiti kako da izlaz bude aktivan sekundi koliko ja da odredim,nigdje ne mogu nac neki lijep primjer toga ...
Da bi nešto znao, naučio, moraš to iskreno i željeti. Tu, na ovom forumu, imaš sasvim dobro predvanje o programiranju u C-u ( Tartufi ) za računala specijalne namijene. Nije važno što je za Atmega MCUe jer principielno su kontroleri koje ti navodiš i ATmega/AVR slična klasa.

Izvini, jedna mi je stvar neobična u tvojim postovima, ti nam pričaš kako ti treba pomoć oko stvari koji su osnova rada s računalima spec. namjene; kao prekidne rutine, prekidni vektor, setiranje timera itd... Sve bi to bilo uredu za početnika al ti govoriš kako programiraš ruku robota. :shock:
A da pođeš redom i najprije pažljivo pročitaš pisanje @InThestillOftheNight o toj temi. Pođeš od lampica pa kad njih svladaš, onda tri lampice i tako koju godinu. Automatika... hm. :wink:

Iz pitanja koje postavljaš se vidi da ti ni "paljenje lampica" neide (izvini) a robote bi programirao. U tehničku dokumentaciju MCU-a vjerojatno nisi ni zavirio, kao i mnogi, a kamoli je proučio itd.
Neće i nemože compiler da za tebe odradi ono što je tvoj posao. :?

Ponovit ću ti, programiranje MCU-a nema gotovo nikakve veze s programiranjem PC-a IBM x86 klase. Kako je već rečeno, to su dva jako različita svijeta. Ovdje se neke stvari o HW-ru samog kontrolera kao i njegovoj internoj arhitekturi moraju naučit.
I na kraju, nebih bio sam prema sebi korektan, kad ti nebih skrenuo pažnju na assembler. Dobri programeri ga moraju poznavati pogotovo na računalima spec. namjene.
Today's scientists have substituted mathematics for experiments, and they wander off through equation after equation, and eventually build a structure which has no relation to reality.
- Nikola Tesla
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

Napravio sam robotsku ruku u 8.razredu koja je sasvim lijepo radila,napravio sam je u qbasicu,i nije bilo nikakvih problema ... izmedju robotske ruke s 4motora i 4 ledice nema nikakve razlike,a to sto me zanimaju neke stvari i zelim shvatiti C,mislim da je u redu ... ...bio bi mi od vece pomoci kad bi mi napisao da izlaz radi 5 sekundi,lijep pozdrav =)
_heX
Napredujem
Napredujem
Posts: 136
Joined: 29-10-2009, 20:09
Location: Republika Zagorje

Re: C ... vremensko ogranicenje

Post by _heX »

daj vise informacija, koji tocno pic, gdje isprobavas: simulator ili realno, vidim da si umetnuo htc.h header, jel ti compiler sigurno ht picc?
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

Ovako,u MPLABU onaj HI-TECH c compiler,debbuger mi je proteus u kojemu simuliram rad sklopa,pic je 16f84A,oscilator je 20 Ghz ...
_heX
Napredujem
Napredujem
Posts: 136
Joined: 29-10-2009, 20:09
Location: Republika Zagorje

Re: C ... vremensko ogranicenje

Post by _heX »

Evo, valjda sam dobro shvatio; Kad pritisnes tipku upali se dioda i ona svijetli 5 s bez obzira dal je tipka pritisnuta i duze. Da bi dioda opet zasvijetlila trebas otpustiti tipku (ukoliko vec nisi) i opet ju pritisnuti.

S druge strane ako ti zelis pritisnuti tipku i da ona ostane pritisnuta trebas koristiti prekidac umjesto. Opcionalno tvoja robotska ruka moze ispustiti ciglu ili neki komad zeljeza na tipku.
Attachments
code.zip
(33.94 KiB) Downloaded 284 times
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

uf,kad pritisnem tipku LED se upali,i vise se nikako ne gasi,ne radi mi nazalost,ili je kod kriv ili neznam vise =)
_heX
Napredujem
Napredujem
Posts: 136
Joined: 29-10-2009, 20:09
Location: Republika Zagorje

Re: C ... vremensko ogranicenje

Post by _heX »

napravi screenshoot sheme pa ga postaj, takodjer pronadji htc.h i pic.h datoteke pa ih postaj. Zelim vidjet kak je definiran config macro. Nemres samo tak maknuti tu liniju, mozda je wdt ukljucen pa ti resetira pic, mozda nije definiran hs tip oscilatora pa uopce ne vrti. Nisam nikada koristio taj proteus sim. tak da neznam kolka mu treba realnost.
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

Sto se tice Proteusa(labcenter electronic) ... imas schematic ISIS,te PCB ARES koji sam slaze komponente,mozes ga povezat s MPLABOM,program je vrh,zaista neznam jel postoji bolji ...
za_hex.rar
za_hexa
(25.8 KiB) Downloaded 275 times
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

simulira u real time i sve je savrseno vidljivo,ovo na slici je moja plocica za simulaciju ,zanemari onaj lijevi dio s cudno postavljenim diodama
_heX
Napredujem
Napredujem
Posts: 136
Joined: 29-10-2009, 20:09
Location: Republika Zagorje

Re: C ... vremensko ogranicenje

Post by _heX »

otvori chip_select.h i pronadji rijec _16f84a te vidi koja se datoteka ukljucuje za taj proc. Postaj ju, trebala bi biti nesto kao pic1684.h!
c1 i c2 probaj staviti 20pF.

Malo su mi cudni spojevi cvorova, samo tak, predjes linijom preko, neko zadebljanje kao tocka nista?
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

Ma,ne spojevi su u redu kad se spaja lijepo se osjeti je li spoj ili nije,i prilikom zooma je sve dobro spojeno.

e stvarno se nadam da ce mi to proraditi sto pokusavam

...
u qbasicu upises SLEEP 5 i izlaz radi neko vrijeme,sad nezz jesu li to sec,ali radi ,zar nema nesto tako jednostavno u c-u,oni delay prekratko traju,a ova komb-ne radi =)
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

+++++
Attachments
pic16f874a.rar
(4.23 KiB) Downloaded 288 times
0leee
Penjem se :)
Penjem se :)
Posts: 68
Joined: 16-08-2011, 20:43

Re: C ... vremensko ogranicenje

Post by 0leee »

********** je li dobra datoteka ?
Post Reply