Thanks for the reply. I looked through the data sheet for guidance about the various counters but I wasn't able to figure out what I need. Maybe someone here can help. I am using an ATMega 128 clocked at 16 mhz. What I'm trying to get is a 10khz PWM from timer 1 and a 2 khz pwm from timer2. I am using the Bascom BASIC. I expect that what I need to do is to use these like I use timer0 to set up my 10ms timer tick. For that, I set the prescale to 1024 and by reloading the timer to 99 each time my timer ISR executes, I get a 10ms tick. Since this is a PWM and I don't have an ISR, I'm looking for the way to set that reload value one time when I configure the PWM. That's what I've been unable to find. I have experimented with trying to set various timer related things but haven't gotten it to work. Here are my declarations: Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Prescale = 1 Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 8 I'd appreciate any help from someone who knows the answer on this one. Thanks. -----Original Message----- From: AVR-Chat@yahoogroups.com [mailto:AVR-Chat@yahoogroups.com] On Behalf Of Jim Wagner Sent: Thursday, November 29, 2007 10:11 PM To: AVR-Chat@yahoogroups.com Subject: Re: [AVR-Chat] PWM question with ATMega128 On Thu, 29 Nov 2007 16:44:33 -0800 "Philippe Habib" <phabib@well.com> wrote: > I'm new to using the AVR processors and I'm trying to use > the built in PWM > function. > > > > I have basic PWM working and I've got 2 different pwm > signals going from two > independent timers. So far so good. > > > > Using the pre-scaler, I can get close to the desired PWM > frequency, and by > setting the compare register appropriately, I can set the > duty cycle. > > > > When I use the timer as a timer, I know how to set the > exact time I need by > using the timer register to some value and having it > count to overflow. Is > there some similar mechanism to allow me to adjust the > PWM frequency to > exactly what I need instead of the nearest pre-scaler > value? With timers that have TWO compare registers, you can use one to set the value at which it resets; you can set this to anything from 1 to the maximum count value of the timer. The prescaler and the sysem clock will always set the timer interval for one count. Example: Clock = 10MHz, prescale = 1, one count is worth 0.1us. But, if prescale = 16, one count is worth 1.6us. This sets the TIME RESOLUTION of the counter. Jim Wagner Oregon Research Electronics Tangent, OR, USA --------------------------------------------------------------- The Think Different Store http://www.thinkdifferentstore.com/ For All Your Mac Gear --------------------------------------------------------------- Yahoo! Groups Links -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.503 / Virus Database: 269.16.10/1159 - Release Date: 11/29/2007 11:10 AM
Message
RE: [AVR-Chat] PWM question with ATMega128
2007-11-30 by Philippe Habib
Attachments
- No local attachments were found for this message.