我控制一个无刷直流电机与一个逆变器/驱动器IC做开关工作。我需要为驱动器提供6个PWM信号,所有的频率相同。确切的频率并不重要,只要它在5千赫到10千赫之间,所有的PWM引脚都是一样的。
我目前正在使用Arduino Uno,我不知道如何编程每个PWM引脚(3,5,6,9,10,11)的所有相同的频率,为特定的引脚(0,1和2)有不同的时钟速度。
引脚5和6:由timer0控制,基频62500 by
引脚9和10:由timer1控制,基频350 by
引脚11和3:由timer2控制,基频350 by
timer1和timer2可以通过预分频器值8 (7812.5Hz)缩小
目前,我正在为friendlyarm Linux2.6.32.2 (mini2440)开发GPIO内核模块。我来自电子学背景,是Linux的新手。
在启动时加载的内核模块和相关的设备文件位于/dev中,名称为gpiofreq。
第一次写入设备文件时,GPIO引脚以50 pin的频率连续切换。在第二次写入时,停止切换。第三次,它再次启动,依此类推。
我已经编写了单独的内核模块来生成freq。但是CPU在第一次写入设备文件后就冻结了。显示了终端提示符,但之后无法运行任何命令。
下面是代码片段:
//calling function which generates continuous freq a