PWM Generator
PWM Generator | |
---|---|
Status | Unstable/Broken
|
menuconfig | I/O->PWM Generator |
Pinning | yes |
Ecmd | yes |
Depends on | ECMD |
Requires | - |
Code | https://github.com/ethersex/ethersex/tree/master/hardware/pwm |
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 thre 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]
Connection
Every channels requieres a port., but since the timers are used the ports are fix defined by the pins of the microcontroller.
Nevertheless you have to do some pin definition. Here the version for the AtMega32:
ifdef(`conf_PWM', `dnl #ifdef CH_A_PWM_GENERAL_SUPPORT pin(CHANNEL_A_PWM, PD5, OUTPUT) #endif /* CH_A_PWM_GENERAL_SUPPORT */ #ifdef CH_B_PWM_GENERAL_SUPPORT pin(CHANNEL_B_PWM, PD4, OUTPUT) #endif /* CH_B_PWM_GENERAL_SUPPORT */ #ifdef CH_C_PWM_GENERAL_SUPPORT #error 3 Channel pwm unsupported. #endif /* CH_C_PWM_GENERAL_SUPPORT */ ')
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.