Pulse wide modulator generator with up to 3 channels.
This module uses the avr timers to generate the pwm signals, so for every channel a timer is necessary. It depends on the hardware and other modules, if three timers are available for the the three channels.
To get background infos you can have a look at this tutorial (in german): [AVR-Tutorial: PWM]
Status: Basic modul works - tested and used 2012-05-25
Every channels requieres a port, but since the timers are used, the ports have a predefined assignment - depending on the mcrocontroller.
Nevertheless you have to do some pin definition. Here the version for the AtMega32:
ifdef(`conf_CH_A_PWM_GENERAL', `dnl pin(CHANNEL_A_PWM, PD5, OUTPUT) ') ifdef(`conf_CH_B_PWM_GENERAL', `dnl pin(CHANNEL_B_PWM, PD4, OUTPUT) ') ifdef(`conf_CH_C_PWM_GENERAL', `dnl # error 3 Channel pwm unsupported. ')
You can also use the script add-hardware (in folder scripts) to generate a board-layout for your current configuration. I don't know the current status of the script - so it is possible, that not every features is supported.
Output of wave files
Control a servo motor