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 

Bascom AVR in generator frekvenCE

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 4.01
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Pet Maj 03, 2013 9:45 am    Naslov sporočila:  Bascom AVR in generator frekvenCE Odgovori s citatom

Torej rabil bi generiranje impulzov za krmiljenje koračnega motorje preko PoStep25.

Trenutno imam narejeno takole :


Koda:

const Timer1Reload = 11059
config timer1=timer,prescale = 1
load timer1 , Timer1Reload
on ovf1 Timer1_isr
enable timer1
start timer1
enable interrupts

Timer1_ISR:
   load timer1, Timer1Reload
   portk.0 =  not portk.0
  return


Vendar zadeva ne deluje. Če obesim gor osciloskop dobim "žago". Je še kakšna druga možnost?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5327
Aktiv.: 24.78
Kraj: Domzale

PrispevekObjavljeno: Pet Maj 03, 2013 10:18 am    Naslov sporočila:   Odgovori s citatom

Zakaj ne uporabiš strojnega PWM?


LP, g

_________________
...lahko pa se tudi motim ...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 4.01
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Pon Maj 06, 2013 10:07 am    Naslov sporočila:   Odgovori s citatom

Hvala za odgovor.

Z PWM zadeva deluje, vendar kako spreminajti frekvenco? Konfiguracija timerja sicer določi frkvenco z določitvijo bitov in preskalerja.
Želel bi spreminajti frekvenco na izhodu v nekem območju.

konfiguracija timerja:
Koda:

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.09
Kraj: KOPER

PrispevekObjavljeno: Pon Maj 06, 2013 2:53 pm    Naslov sporočila:   Odgovori s citatom

Pwm1a = x

vrednost x spreminjaš od 0 do 1023

_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 4.01
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Pon Maj 06, 2013 3:27 pm    Naslov sporočila:   Odgovori s citatom

Lp..to sem uporabil vendar se obrati motorja ne spreminjajo. Gre pa za modul za koračni motor PoStep25.

Če gledam sliko na osciloskopu se spreminajo le trajanje impulza in pa trajane pavze pri spreminjanju vrednosti PwmA ..frekvenca je stalno enaka..je pa impulz lepo pravokoten.

Pri uporabi prekinitve timerja je impulz v spodnjem delu popačen. danes še našel en primer generiranja takta na internetu, vendar ga nisem uspel preizkusiti.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
rudiP
Član
Član



Pridružen-a: Tor 07 Avg 2007 15:30
Prispevkov: 1234
Aktiv.: 6.09
Kraj: KOPER

PrispevekObjavljeno: Pon Maj 06, 2013 4:55 pm    Naslov sporočila:   Odgovori s citatom

Sem površno prebral in ti dal tudi površen odgovor. V tvojem koščku kode nisi
konfiguriral pin kot izhod. Drugače pa probaj z pulseout.

_________________
Lep pozdrav iz Kopra Rudi
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 4.01
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Čet Maj 09, 2013 11:25 am    Naslov sporočila:   Odgovori s citatom

Še vedno se ukvarjam z generiranjem frekvence. Dosegel sem , da lahko generiram frekvenco nekje do 18 kHZ. Uporabil sem tale primer iz interneta:
Koda:

$regfile = "2313def.dat"
$crystal = 4000000

Config Pind.6 = Output
Config Pinb.1 = Output
Config Timer1 = Timer , Prescale = 1
Const Timer1pre = 65100

Dim Wtime As Byte
Stop Timer1
Timer1 = Timer1pre

On Timer1 Pulse:
Start Timer1

Wtime = 100

Enable Interrupts
Enable Timer1

Do
  Set Portd.6
  Waitms Wtime
  Reset Portd.6
  Waitms Wtime
Loop

Pulse:
  Stop Timer1
  Timer1 = Timer1pre
  Toggle Portb.1
  Start Timer1
Return

End


Kar me moti je to, da se pri približevanju višjim frekvencam upočasni delovanje ostalega programa...ali se program celo ustavi.
Ker sem so sedaj le malo imel opravka z timerji in njihovimi interupti, me zanima ali ne delujejo interupti neodvisno od delovanja ostalega programa? ali interupt pri visokih frekvencah toliko "zamudi" procesor, da se to pozna na delovanju vsega ostalega.

Razmišljam o uporabi zunenjga čipa za generator takta..ali uporabo motorjev že z vgrajenim kontrolerjem in z serijsko komunikacijo, kot sem jih že uporabljal, vendar so cenovno kar vlik zalogaj.
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.74

PrispevekObjavljeno: Čet Maj 09, 2013 11:46 am    Naslov sporočila:   Odgovori s citatom

Izračunaj, koliko ciklov ti požre ena prekinitev. Nato izračunaj, na koliko ciklov se proži prekinitev. Nato ugasni žarnico, ki se ti bo nad glavo prižgala Wink
_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Obelix
Član
Član



Pridružen-a: Pon 19 Maj 2008 13:59
Prispevkov: 1862
Aktiv.: 9.64
Kraj: Maribor

PrispevekObjavljeno: Čet Maj 09, 2013 11:50 am    Naslov sporočila:   Odgovori s citatom

besoft je napisal/a:
...Kar me moti je to, da se pri približevanju višjim frekvencam upočasni delovanje ostalega programa...ali se program celo ustavi...

Si "vezan" na 4 MHz ? Poskusi z višjo frekvenco. 2313 gre do 20 MHz.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 4.01
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Čet Maj 09, 2013 12:06 pm    Naslov sporočila:   Odgovori s citatom

Ne nisem vezan na 4 Mhz...to je le primer iz interneta. Uporabljam ATmega128 in 11.0592 MHz kristal.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
besoft
Član
Član



Pridružen-a: Ned 01 Apr 2012 10:22
Prispevkov: 585
Aktiv.: 4.01
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Čet Maj 09, 2013 1:10 pm    Naslov sporočila:   Odgovori s citatom

gumby je napisal/a:
Izračunaj, koliko ciklov ti požre ena prekinitev. Nato izračunaj, na koliko ciklov se proži prekinitev. Nato ugasni žarnico, ki se ti bo nad glavo prižgala Wink


Bom megel preštudirati zadeve okoli timerjev in prekinitev. Hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Č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: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group