Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

RE: [AVR-Chat] PWM question with ATMega128

2007-11-30 by Philippe Habib

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

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.