Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

utripalec z Atmelom 2313 in Bascomom

 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Programska oprema
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
poldi
Novinec


Pridružen/-a: Pet Jan 2007 20:53
Prispevkov: 4

PrispevekObjavljeno: Ned Maj 13, 2007 8:32 am    Naslov sporočila: utripalec z Atmelom 2313 in Bascomom Odgovori s citatom

spoštovani,
trudim se narediti utripalec, ko bi se ob pritisnjeni tipki na Pind.0 postavil izhod Portb.0 na 1 za 20s in po 1 min zopet na 1 za 20 s (če še vedno tiščiš tipko), vmesnih 40 s bi bil izklopljen. To bi rad neredil za 2 vhoda / izhoda popolnoma neodvisno (Pind.0 in .1 / Portb.0 in .1).

Ali je že kdo počel kaj takega, z Bascomom?

Lep pozdrav, Poldi
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Gustav
Profesionalec


Pridružen/-a: Pon Jun 2005 17:19
Prispevkov: 768

PrispevekObjavljeno: Ned Maj 13, 2007 10:10 am    Naslov sporočila: Odgovori s citatom

Naloga je preprosta, zato ti bom orisal konceptualno resitev, programcek pa bos napisal sam:

1: Najprej usposobi en timer tako, da bo sluzil kot casovna referenca s svojo prekinitvijo; oglej si npr. primere "ure" z mikrokontrolerjem oz. programa, ki bo prizigal in ugasal LEDico z doloceno frekvenco (natancno v okviru natancnosti oscilatorja MCUja).

2: Ker ne potrebujes silne natancnosti (tu se vedno govorimo o natancnosti ranga milisekund), lahko stanje vhodov preverjas v glavni zanki. To je zaradi debounce-a najbolj casovno potratno.

3: Za vsak vhod pripravi dve spremenljivki, v kateri bos vpisal stevilo "timer tickov" (najmanjsih casovnih enot, ki jih bo tvoj timer stel - ce bo npr. stel sekunde, bo to stevilo sekund do izklopa in cas mirovanja, ce bo stel milisekunde, potem bo vrednost tisockrat visja, itd.).

4: V glavni zanki preverjas stanje tipke samo, ce sta obe spremenljivki postavljeni na 0 (torej stevca "mirujeta" in se je ena minuta ze iztekla). Ko je na vhodu ustrezno stanje, postavis prvi stevec na 20 (ce stejes sekunde), drugega na 40, postavis izhod na 1 in prepustis nadalnje delo prekinitveni proceduri timerja.

5: Ob vsaki prekinitvi, ki jo sprozi timer, v handlerju pogledas ali je prva spremenljivka drugacna od 0 in ce je, potem jo zmanjsa za 1 ter ce pride do 0, postavi izhod na 0. Ce prva spremenljivka ni drugacna od 0, potem pogledas drugo; ce je druga drugacna od 0, potem jo zmanjsas za 1. Eventuelno bosta obe spremenljivki prisli do 0 (po 20+40 sekundah) in glavna zanka bo spet preverjala vhod in ce bo tipka se kar pritisnjena, se bo vse skupaj ponovilo.

To je vse. Naredis lahko za poljubno vhodov/izhodov, z razlicnimi casi, vse po istem principu.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Programska oprema Časovni pas GMT + 1 ura, srednjeevropski - zimski č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
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group