TI论坛
直播中

张百玲

8年用户 232经验值
私信 关注

请问SPWM波频率如何改变实现,用按键、滚轮?

本帖最后由 一只耳朵怪 于 2018-6-8 11:19 编辑

通过timer0定时中断,以10k频率响应定时中断。但是想改变10k的响应频率。决定用按键和滚轮。
1.按键。
从初始化Timer0程序里找到“// 8K Hz响应  
                     ROM_TimerLoadSet (TIMER0_BASE, TIMER_A,   
                                    ROM_SysCtlClockGet() / SAMPLE_FREQUENCY);”;
用CCS手电筒搜索到“ SAMPLE_FREQUENCY”赋值所在位置:
                     #define TIVA_MAIN_FREQUENCY       80000000        //80MHz tiva主频
                     #define SAMPLE_FREQUENCY          10000         //10KHz SPWM波的频率
决定改变:
                     int M;                                                             //按键控制M在1到16之间循环
                     #define SAMPLE_FREQUENCY          M * 5000         //5MKHz SPWM波的频率

回帖(16)

张百玲

2018-6-7 04:17:18

学会了怎么弄按键和滚轮、、、但是改变不了SAMPLE_FREQUENCY........输出的波形频率不变。。。。
 
话说其实没有很明白Timer0的时钟频率怎么设定的,80M/10000=8k,可是实际测出的为10k左右。。。。。是芯片内部有什么地方导致设定的1000减少了么?还是函数问题?
 
举报

韦明

2018-6-7 04:27:19
引用: asd012 发表于 2018-6-7 04:17
学会了怎么弄按键和滚轮、、、但是改变不了SAMPLE_FREQUENCY........输出的波形频率不变。。。。
 
话说其实没有很明白Timer0的时钟频率怎么设定的,80M/10000=8k,可是实际测出的为10k左右。。。。。是芯片内部有什么地方导致设定的1000减少了么?还是函数问题?

TM0的时钟频率不就是主时钟除以TM0的分频值么,你看看库函数,应该有一个函数专门设置这个值的
举报

张百玲

2018-6-7 04:38:55
引用: ljmlvmd 发表于 2018-6-7 04:27
TM0的时钟频率不就是主时钟除以TM0的分频值么,你看看库函数,应该有一个函数专门设置这个值的

是的,找到了程序中设定的
#define TIVA_MAIN_FREQUENCY       80000000        //80MHz tiva主频
#define SAMPLE_FREQUENCY          10000         //10KHz SPWM波的频率
#define CARRIER_PERIOD_TIME       TIVA_MAIN_FREQUENCY / SAMPLE_FREQUENCY // SPWM波的周期
我想改变SAMPLE_FREQUENCY ,使它能随按键变化,而不是每次都手动改动程序。让他SAMPLE_FREQUENCY   =    N(已经实现了N随按键和滚轮变化)* SPWM_FREQUENCY。
可是没能成功,N在变(显示出来的)可是出来的PWM频率没变。
新手求教~~~~         
举报

更多回帖

发帖
×
20
完善资料,
赚取积分