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 

Generator impulzov

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
jstajnko
Član
Član



Pridružen-a: Sre 03 Sep 2008 11:19
Prispevkov: 10
Aktiv.: 0.05
Kraj: koracice

PrispevekObjavljeno: Sre Sep 03, 2008 1:40 pm    Naslov sporočila:  Generator impulzov Odgovori s citatom

Zanima me kako narediti generator impulzov oz. kako zgleda program v Bascom-u. Frekvenca impulzov naj bo točno 1 Hz.
Mikrokontroler imam ATtiny 2313, kvarc je 4MHz.
Po datasheet-u bi naj za output bil pin b.2.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.71
Kraj: Kranj - struževo

PrispevekObjavljeno: Sre Sep 03, 2008 9:14 pm    Naslov sporočila:   Odgovori s citatom

ne poznam bascoma ampak vseeno:

loop1:
out = 1
wait <dolžina pulza>
out = 0
wait <1 sekunda minus dolzina pulza zgoraj minus čas izvajanja vseh instrukcij brez wait>
goto loop1

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.33
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Sep 03, 2008 10:00 pm    Naslov sporočila:   Odgovori s citatom

Ja, v Bascomu bo nekaj takega:

Koda:
Do
PORTX.y = 1
Waitms 1
PORTX.y = 0
Waitms 999
Loop


To je pač tako, da imaš signal dolg 1 milisekundo. Če dolžina signala ni važna (oziroma zadostuje nekaj us), narediš takole:
Koda:
Do
PORTX.y = 1
PORTX.y = 0
Wait 1
Loop


Zaradi Wait ukazov - največja vrednost naj bi namreč bila 250 - ne rabiš skrbeti. Če imaš najnovejši (ni nujno, lahko je tudi starejši) Bascom-AVR ti take napakice sam razbije na pravilne.

_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
jstajnko
Član
Član



Pridružen-a: Sre 03 Sep 2008 11:19
Prispevkov: 10
Aktiv.: 0.05
Kraj: koracice

PrispevekObjavljeno: Čet Sep 04, 2008 12:44 pm    Naslov sporočila:   Odgovori s citatom

Kako pa se to naredi s timer-ji? Npr: da bi impulze pošiljal z 40 kHz?

Z ukazi wait- ms, - us, časi niso realni, vedno zaostaja.
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.42

PrispevekObjavljeno: Čet Sep 04, 2008 12:54 pm    Naslov sporočila:   Odgovori s citatom

Za precizen timing raje v asemblerju naredi. Natančnost je brez problemov lahko dolžina ene instrukcije.
Seveda je točnost še vedno odvisna od točnosti oscilatorja...

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



Pridružen-a: Ned 09 Jan 2005 22:35
Prispevkov: 261
Aktiv.: 1.10
Kraj: Celje

PrispevekObjavljeno: Čet Sep 04, 2008 12:57 pm    Naslov sporočila:   Odgovori s citatom

Timer moraš najprej vključiti in ustrezno nastaviti v registrih namenjenih za to. Nato lahko v programu zapišeš, da ti timer sproži prekinitev. V prekinitveni rutini enostavno zapišeš ukaz, ki ti invertira vrednost tvojega izhoda. Toda, ne morem ti bolj pomagati, ker ne programiram v Bascomu...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
jstajnko
Član
Član



Pridružen-a: Sre 03 Sep 2008 11:19
Prispevkov: 10
Aktiv.: 0.05
Kraj: koracice

PrispevekObjavljeno: Čet Sep 04, 2008 3:37 pm    Naslov sporočila:   Odgovori s citatom

gumby kako bi pa zgledal program v asemblerju za moj primer ( generiranje impulzov 40 kHz) ?

Kje dobiti program?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.71
Kraj: Kranj - struževo

PrispevekObjavljeno: Sob Sep 06, 2008 10:04 am    Naslov sporočila:   Odgovori s citatom

Program napišeš Razz

Timerji pa imajo možnost hardverskega togglanja izhodnega pina. To bo po moje še najboljša varianta.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Č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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group