?lang_form?
?lang_select?
?lang_submit?
?lang_endform?
{HEADER END}
{FILE START}
library
?curdirlinks? - Rev 6
?prevdifflink? - Blame - ?getfile?
//*****************************************************************************
// File Name : timertest.c
//
// Title : example usage of timer library functions
// Revision : 1.0
// Notes :
// Target MCU : Atmel AVR series
// Editor Tabs : 4
//
// Revision History:
// When Who Description of change
// ----------- ----------- -----------------------
// 30-Apr-2003 pstang Created the program
//*****************************************************************************
//----- Include Files ---------------------------------------------------------
#include <avr/io.h> // include I/O definitions (port names, pin names, etc)
#include <avr/interrupt.h> // include interrupt support
#include "global.h" // include our global settings
#include "uart.h" // include uart function library
#include "rprintf.h" // include printf function library
#include "timer.h" // include timer function library (timing, PWM, etc)
void timerTest(void);
//----- Begin Code ------------------------------------------------------------
int main(void)
{
// initialize our libraries
// initialize the UART (serial port)
uartInit();
// set the baud rate of the UART for our debug/reporting output
uartSetBaudRate(9600);
// initialize rprintf system
rprintfInit(uartSendByte);
// run the test
timerTest();
return 0;
}
void timerTest(void)
{
// print a little intro message so we know things are working
rprintf("\r\n\n\nWelcome to the timer library test program!\r\n");
// initialize the timer system
timerInit();
// to use the internal timers to produce a calibrated delay,
// use the timerPause() function. timerPause takes a 16-bit
// integer argument in milliseconds
// example: wait for 1/2 of a second, or 500ms
rprintf("\r\nTest of timerPause() function\r\n");
rprintf("Here comes a 1/2-second delay...\r\n");
timerPause(500);
rprintf("Done!\r\n");
// here's an example of using the timer library to do
// pulse-width modulation or PWM. PWM signals can be created on
// any output compare (OCx) pin. See your processor's data sheet
// for more information on which I/O pins have output compare
// capability.
rprintf("\r\nTest of timer1 PWM output\r\n");
// set the OC1x port pins to output
// We need to do this so we can see and use the PWM signal
// ** these settings are correct for most processors, but not for all
sbi(DDRD, PD4);
sbi(DDRD, PD5);
// initialize timer1 for PWM output
// - you may use 8,9, or 10 bit PWM resolution
rprintf("Initializing timer1 for PWM\r\n");
timer1PWMInit(8);
// turn on the channel A PWM output of timer1
// - this signal will come out on the OC1A I/O pin
rprintf("Turning on timer1 channel A PWM output\r\n");
timer1PWMAOn();
// set the duty cycle of the channel A output
// - let's try 25% duty, or 256*25% = 64
rprintf("Setting duty cycle to 25%%\r\n");
timer1PWMASet(64);
// turn on channel B and set it to 75% duty cycle
rprintf("Turning on channel B too, with 75%% duty\r\n");
timer1PWMBOn();
timer1PWMBSet(192);
// wait for 5 seconds
rprintf("Pause for 5 seconds...\r\n");
timerPause(5000);
// now turn off all PWM on timer1
rprintf("Turning off all PWM on timer1\r\n");
timer1PWMOff();
}
|
{FILE END}
{FOOTER START}
Powered by WebSVN v2.8.3