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 

ATmega8 tretji PWM kanal

 
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
program_er
Član
Član



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

PrispevekObjavljeno: Čet Avg 06, 2009 9:54 pm    Naslov sporočila:  ATmega8 tretji PWM kanal Odgovori s citatom

Pozdravljeni!

Imam eno težavo. Ponavadi sem rabil 1-2 PWM kanala, zdaj pa rabim 3. ATmega8 (ki je poleg mege32 redno na breadboardu) ima 3 PWM kanale, le da tretjega ne znam uporabljati Confused

Programiram v Bascom-AVR.

ATmega8 ima tri PWM kanale, dva na 10-bitnemu Timer1 in enega na 8-bitnemu Timer2. Prva dva sta na pinih OC1A in OC1B, tretji je na pinu OC2.

Tak košček kode z dvema PWM kanaloma lepo dela:
'Omogočim Timer1 in ga definiram kot 8-bitni 43kHz PWM
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Enable Timer1


Potem v programu vrednost PWMja pišem z ukazoma:
Pwm1a = 0-255
Pwm1b = 0-255


To dela brez problema, problem pa nastane, ko hočem uporabljati še tretji kanal:
'Omogočim Timer1 in ga definiram kot 8-bitni 43kHz PWM
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Enable Timer1


'Omogočim 8-bitni Timer2 in ga definiram kot 8-bitni 43kHz PWM
Config Timer2 = Pwm , Compare Pwm = Clear Down , Prescale = 1
Enable Timer2


To še dela, problem je v naslavljanju/pisanju vrednost PWMja:
Pwm1a = 0-255 'Prvi kanal
Pwm1b = 0-255 'Drugi kanal
'Kaj pa tretji?

Poiskusil sem že ukaze:
Pwm1c =
Pwm2a =
Pwm2b =
Pwm2 =


Ampak pri vseh javi napako. Zato prosim za pomoč, če se je že kdo ukvarjal s tem oziroma ve Bascom-AVR ukaz za tretji PWM kanal.

Hvala.

_________________
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
strobos
Član
Član



Pridružen-a: Sre 24 Sep 2003 12:19
Prispevkov: 726
Aktiv.: 3.06
Kraj: Brežice

PrispevekObjavljeno: Čet Avg 06, 2009 11:16 pm    Naslov sporočila:   Odgovori s citatom

Probaj z OCR2 = 0-255
Verjetno pa piše v helpu za Bascom ukaz.

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



Pridružen-a: Pet 26 Jan 2007 10:27
Prispevkov: 204
Aktiv.: 0.91

PrispevekObjavljeno: Pet Avg 07, 2009 6:59 am    Naslov sporočila:   Odgovori s citatom

LP!

Mogoče kaj pomaga.


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
Config Timer2 = Pwm , Pwm = On , Prescale = 1 , Compare Pwm = Clear Down

Dim Rdeca As Byte , Zelena As Byte , Modra As Byte
Dim Rdeca1 As Byte , Zelena1 As Byte , Modra1 As Byte , Pwmvrednst As Byte , Pwmvrednst1 As Byte , Pwmvrednst2 As Byte
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output

Portb.1 = 0
Portb.2 = 0
Portb.3 = 0
Do
Rdeca = Rnd(255)
If Rdeca1 < Rdeca Then
For Pwmvrednst = Rdeca1 To Rdeca
Pwm1a = Pwmvrednst
Waitms 20
Next Pwmvrednst
Else
For Pwmvrednst = Rdeca1 To Rdeca Step -1
Pwm1a = Pwmvrednst
Waitms 20
Next Pwmvrednst
End If
Rdeca1 = Rdeca
Zelena = Rnd(255)
If Zelena1 < Zelena Then
For Pwmvrednst1 = Zelena1 To Zelena
Pwm1b = Pwmvrednst1
Waitms 20
Next Pwmvrednst
Else
For Pwmvrednst1 = Zelena1 To Zelena Step -1
Pwm1b = Pwmvrednst1
Waitms 20
Next Pwmvrednst1
End If
Zelena1 = Zelena
Modra = Rnd(255)
If Modra1 < Modra Then
For Pwmvrednst2 = Modra1 To Modra
Compare2 = Pwmvrednst2
Waitms 20
Next Pwmvrednst2
Else
For Pwmvrednst2 = Modra1 To Modra Step -1
Compare2 = Pwmvrednst2
Waitms 20
Next Pwmvrednst2
End If
Modra1 = Modra
Loop
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



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

PrispevekObjavljeno: Pet Avg 07, 2009 11:20 am    Naslov sporočila:   Odgovori s citatom

Hvala obema, OCR2 = 0-255 dela, prav tako Compare2 = 0-255! Applause


Je pa zanimivo pri LED diodah, da se pozna samo nekaj procentov PWM signala. Naprimer od PWM vrednosti 0-100 sveti enako močno (full), potem pa se počasi zmanjšuje svetlinost do 0 (255).

Hvala za pomoč.

_________________
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
pirpy
Član
Član



Pridružen-a: Ned 30 Maj 2004 21:57
Prispevkov: 774
Aktiv.: 3.27
Kraj: Topolšica

PrispevekObjavljeno: Pet Dec 04, 2009 8:31 pm    Naslov sporočila:   Odgovori s citatom

Pozdrav
v datasheetu za avr piše da je lahko pwm izhod tudi generator pravokotnega signala do 32 mhz če nastaviš rezolucijo pwm izhoda na 1 vendar mi v bascomu nikakor ne uspe zmanjšati rezolucije .
uporabljam timer2 ki je 8 biten.
Hvala
b
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
pirpy
Član
Član



Pridružen-a: Ned 30 Maj 2004 21:57
Prispevkov: 774
Aktiv.: 3.27
Kraj: Topolšica

PrispevekObjavljeno: Sob Dec 05, 2009 2:37 am    Naslov sporočila:   Odgovori s citatom

je slo po parih urah raziskovanja in preizkusov Smile
izgleda pa takole
Config Timer2 = Timer , Compare = Toggle , Clear Timer = 1 , Prescale = 1
Enable Timer2
Ocr2 = 0
in na izhodnem pinu se pojavi pravokoten signal 10008192 pri 20 mega kristalu
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: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group