Subject: Atmel programming tricks
From: Rotary Engine
Date: 5/27/2010, 2:00 PM
To: AAA Put this in the To box

Linux can cut and paste out of pdf files but
I am not sure that is possible in windows.

In an event it is a good idea to get the programming docs
out of the pdf and into text form so you can cut and paste
comments and commands directly into your program.
Here is a PWM example.

******************************************************************************
OpenPWM
Type          Subroutine
Invocation  OpenPWM(channel, frequency, mode)
           OpenPWM(channel, frequency, mode, stat)
Parameter  Method    Type     Description
channel    ByVal     Byte     The channel to use for PWM generation.
frequency  ByVal     Single   The desired PWM frequency.
mode       ByVal     Byte     The desired PWM mode (see discussion below).
stat       ByRef     Boolean  The variable to receive the status code.

Discussion
This subroutine prepares a PWM channel for generating a
pulse width modulated (PWM) signal. PWM
generation is performed using one of the CPU?s 16-bit
timers, the number of which varies depending on
the ZX model. The table below indicates the available
channels and the corresponding timer used. See
the description of PWM() for additional details on the PWM
channels.

 Supported 16-bit PWM Channels

 ZX Models .......  Timer1      Timer3    Timer4   Timer5

 ZX-1280, ZX-1280n  1, 2, 3     4, 5, 6   7, 8, 9   10, 11, 12

 The frequency parameter specifies the PWM base frequency in
 Hertz.  Since the same frequency and generation mode will
 be used for all PWM channels based on the same timer, it is
 only necessary to call OpenPWM() once to prepare the timer
 for all of the PWM channels that are based on a given
 timer.


The mode parameter specifies the PWM generation
 mode.  Two modes are supported: Fast PWM mode and
 Phase/Frequency Correct mode.  The constants zxFastPWM and
 zxCorrectPWM, having the values 0 and 1 respectively, may
 be used to specify the mode.


The Fast PWM mode has a
 maximum frequency of one-half of the CPU clock frequency
 and is intended for fixed-frequency applications.  The
 Phase/Frequency Correct PWM mode has a maximum frequency of
 one-quarter of the CPU clock frequency and may be used when
 the PWM frequency will be changed in the midst of PWM
 signal generation.


Frequency changes are effected by
 making additional calls to OpenPWM() and the change is
 synchronized so that it takes effect at the beginning of a
 cycle.  The status parameter, if supplied, receives a value
 to indicate success or failure of the call.  A side effect
 of calling OpenPWM() is that the timer busy flag for the
 underlying timer (e.g.


Register.Timer1Busy) will be set to
 True irrespective of its prior state.  It is recommended
 that the initial call to OpenPWM() be preceded by a call to
 acquire the semaphore for the timer.  This will ensure that
 an existing timer operation will not be disturbed.



Example
Call OpenPWM(1, 50.0, zxFastPWM)
'prepare for 50Hz Fast PWM using channel 1

Compatibility
This subroutine is not available in BasicX compatibility mode.

See Also    ClosePWM, PWM


Paul Lamar


pdf's can be images and or text.  If a pdf is made up of optically
scanned images of text which hasn't been converted by OCR to formatted
text, neither Linux now Windows will allow copy-paste to a text/source
document.  If a pdf is made up of formatted text, both Windows Linux
will allow copy-paste.

Matt-

Thanks Matt. It is obviously text.

Paul Lamar



-- 
The Rotary Engine NewsLetter. Powered by Linux.
ACRE NL web site. http://www.rotaryeng.net
Youtube key word PaulLamar2
Copyright 1998-2010 All world wide rights reserved.