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 

ATmega in PWM
Pojdi na stran 1, 2  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika
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.: 3.63
Kraj: Žižki - Prekmurje

PrispevekObjavljeno: Čet Jul 05, 2012 8:28 pm    Naslov sporočila:  ATmega in PWM Odgovori s citatom

Pozdravljeni

zanimam me kako preusmeriti PWM signal na določen pin, namreč želel bi jih imeti skupaj.

Hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
David2204
Član
Član



Pridružen-a: Pon 03 Nov 2008 0:01
Prispevkov: 997
Aktiv.: 4.92
Kraj: Ljubljana - Nova Gorica

PrispevekObjavljeno: Čet Jul 05, 2012 8:39 pm    Naslov sporočila:   Odgovori s citatom

Ne gre. Tiskanino boš moral prilagoditi.
_________________
My favorite programming language is ... solder. -Bob Pease
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Saran
Član
Član



Pridružen-a: Pet 13 Feb 2009 16:26
Prispevkov: 729
Aktiv.: 3.66
Kraj: Zasavje

PrispevekObjavljeno: Čet Jul 05, 2012 8:40 pm    Naslov sporočila:   Odgovori s citatom

Hardwareski PWM ne bo šlo, lahko pa implementiraš zadevo v sofrware-u in uporabiš bilokateri I/O pin.
_________________
Moja mama je strela, moj fotr je grom. Če hočeš bit moja, prključ se na štrom.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14675
Aktiv.: 61.86
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Čet Jul 05, 2012 8:43 pm    Naslov sporočila:   Odgovori s citatom

David2204 je napisal/a:
Ne gre. Tiskanino boš moral prilagoditi.


A res?

Hardverski res ne gre na vsak pin sofwerskega pa lahko narediš na vsak pin, ki ga lahko določiš kot izhod.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
David2204
Član
Član



Pridružen-a: Pon 03 Nov 2008 0:01
Prispevkov: 997
Aktiv.: 4.92
Kraj: Ljubljana - Nova Gorica

PrispevekObjavljeno: Čet Jul 05, 2012 8:58 pm    Naslov sporočila:   Odgovori s citatom

Ko je bilo govora o preusmerjanju, sem mislil, da govori o hardverskem PWMju.
_________________
My favorite programming language is ... solder. -Bob Pease
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



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

PrispevekObjavljeno: Čet Jul 05, 2012 9:08 pm    Naslov sporočila:   Odgovori s citatom

Torej, PWM signal bi radd imel na recimo portu B na pinih 1,2,3,4
PWM pa je generiran z timerji 1 in 4, lahko pa kateri koli drugi timer, ta dva sem vzel za primer.

Torej je to hardwerski PWM in ga ni možno preusmeriti, če prav razumem.

hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1715
Aktiv.: 7.23
Kraj: Ig

PrispevekObjavljeno: Čet Jul 05, 2012 9:34 pm    Naslov sporočila:   Odgovori s citatom

Torej: Hardverski pwm dobiš ven na pinih OC1A, OC1B ter OC2 (za večino AVRjev). Druge izbire nimaš. Kaj pa je narobe, če so malce "razsuti"?

LP G

_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
besoft
Član
Član



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

PrispevekObjavljeno: Čet Jul 05, 2012 9:53 pm    Naslov sporočila:   Odgovori s citatom

Načeloma nič narobe..edino je uporabljen TIV, ki za to ni bil namenjen..in bo zdaj podobno novoletni jelki, povezave vsepovsod. Vsi porti so speljani na rob TIV na berg 10 pinske konektorje, mislim, da si že zdaj predstavljate kaj to pomeni.

Koliko je zanesljiv programski PWM, ima kdo kakšen primer?

Hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1715
Aktiv.: 7.23
Kraj: Ig

PrispevekObjavljeno: Čet Jul 05, 2012 10:55 pm    Naslov sporočila:   Odgovori s citatom

Programski PWM je zanesljiv tolikor, kolikor ga zanesljivega narediš. Sprašuješ se najbrž kako bi ga naredil. Načinov je več, jaz pabi napravil takole. Vzameš en timer, ki ga definiraš kot timer, ob overflowu se sproži prekinitev. S tem timerjem nastavljaš frekvenco tvojega PWM. Potem pa vzameš še 1 timer, ki ga prožiš s prej omenjenim interruptom. S tem timerjem nastavljaš duty cycle. Se pravi, ko se sproži interrupt, timer 2 štarta, po pretečenem času togglaš izhod. Za 3 PWM izhode boš potreboval 4 timerje, vsekakor bo pa to delovalo avtomatsko. Še ena varianta bi bila za avtomatsko delovanje. Nek zunanji clock pripelješ na zunanji interrupt pin, (to ti določa frekvenco PWM), za nastavljanje duty cycla je stvar ista kot prej. Če pa ima še kdo kako idejo, bo pa tudi meni prišla prav Smile

LP G

_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
David2204
Član
Član



Pridružen-a: Pon 03 Nov 2008 0:01
Prispevkov: 997
Aktiv.: 4.92
Kraj: Ljubljana - Nova Gorica

PrispevekObjavljeno: Pet Jul 06, 2012 12:43 am    Naslov sporočila:   Odgovori s citatom

Ena opcija je, da uporabiš en timer, ki ti daje interrupte. Ob vsakem interruptu prišteješ 1 neki spremenljivki in potem to primerjaš z drugo spremenljivko, ki določa duty cycle. Ob overflowu prve spremenljivke postaviš pin na logično 1, ko je prištevana spremenljivka enaka tisti od duty cycla, pin postaviš na 0.

Na praktično enak princip deluje hardverski PWM, s tem da se tam ne uporablja procesor za primerjanje in togglanje izhodov, ampak je vse izvedeno z logičnimi vrati.

_________________
My favorite programming language is ... solder. -Bob Pease
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
besoft
Član
Član



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

PrispevekObjavljeno: Pet Jul 06, 2012 6:27 am    Naslov sporočila:   Odgovori s citatom

Bom zaenkrat ostal pri hardverskih PWM-jih. Ko bo čas, pa se bom malo poigral z softverskimi ali pa zunanji čip.
Hvala za odgovore.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 42.73
Kraj: Mengeš

PrispevekObjavljeno: Pet Jul 06, 2012 8:14 am    Naslov sporočila:   Odgovori s citatom

Jaz imam softverski PWM narejen s 16 kanali in deluje brezhibno, res pa je da je frekvenca pri uporabi 16 MHz kristala tam okoli 60-70 Hz, nič več. Sicer je dovolj, razen če na hitro pogledaš vidiš da utripa, a ni moteče. Je pa varianta z enim timerjem, tako kot pravi David.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
besoft
Član
Član



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

PrispevekObjavljeno: Pet Jul 06, 2012 8:25 am    Naslov sporočila:   Odgovori s citatom

Hitrost me ne moti. lahko malo izdaš, kako imaš narejeno ?
hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 42.73
Kraj: Mengeš

PrispevekObjavljeno: Pet Jul 06, 2012 9:53 am    Naslov sporočila:   Odgovori s citatom

npr. takole:
s spremenljivko I določiš število korakov od min. PWM do max. PWM, z A pa določiš širino pulza. PWM je v spodnjem primeru na portu A.0
Če gor priklopiš LEDico, se bo ta prižigala in ugašala od min. do max.

Koda:

main:
For A = 0 To 100
Waitms 50
Next
For A = 100 To 0 Step -1
Waitms 50
Next
goto main
'_______________________________________________________________________________
'PODPROGRAMI
Timer0_isr:
Load Timer0 , Timer0reload

Incr I
If I >= 100 Then I = 0

If I >= A Then
   Set Porta.0
Else
   Reset Porta.0
End If


Return
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
besoft
Član
Član



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

PrispevekObjavljeno: Pet Jul 06, 2012 10:04 am    Naslov sporočila:   Odgovori s citatom

Protonček hvala Smile
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 -> Elektronika Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2  Naslednja
Stran 1 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: 503 dni


Powered by phpBB © 2001, 2005 phpBB Group