查看: 4825|回复: 10

[分享] 【YL-KL26Z开发】+ TPM生成正弦波

[复制链接]

该用户从未签到

19

主题

401

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1114
最后登录
2017-8-16
发表于 2015-8-24 10:26:39 | 显示全部楼层 |阅读模式
本帖最后由 673402618 于 2015-8-24 15:03 编辑

  板子有将近一个月没动了, 前天拿出来,试着用了一下TPM 用的是KSDK库。


下面上代码



  1. <p>
  2. </p><p>int main()
  3. {
  4. // 首先建立一个正弦表,一个周期内的, 正弦值乘100, 如果是负数就加100
  5.   uint8_t table[]={
  6. 3,6,9,13,16,19,22,25,28,31,34,37,40,43,45,48,51,54,56,59,61,64,66,68,71,73,75,77,79,81,83,84,86,88,89,90,92,93,94,95,96,97,98,98,99,99,100,100,100,100,100,100,100,99,99,98,98,97,96,95,94,93,92,90,89,88,86,84,83,81,79,77,75,73,71,68,66,64,61,59,56,54,51,48,45,43,40,37,34,31,28,25,22,19,16,13,9,
  7. 6,3,1,97,94,91,87,84,81,78,75,72,69,66,63,60,57,55,52,49,46,44,41,39,36,34,32,29,27,25,23,21,19,17,16,14,12,11,10,8,7,6,5,4,3,2,2,1,1,0,0,0,0,0,0,0,1,1,2,2,3,4,5,6,7,8,10,11,12,14,16,17,19,21,23,25,27,29,32,34,36,39,41,44,46,49,52,55,57,60,63,66,
  8. 69,72,75,78,81,84,87,91,94,97,100};   
  9. int cnt = 0;</p><p>
  10. tpm_general_config_t TPM_InitStructure;   //TPM初始化结构体
  11.     tpm_pwm_param_t PWM_InitStructure;   // PWM初始化结构体
  12.    
  13.     CLOCK_SYS_EnablePortClock(PORTD_IDX);    //打开PORT时钟</p><p>    CLOCK_SYS_EnableTpmClock(0);     // 开启TPM时钟
  14.     PORT_HAL_SetMuxMode(PORTD, 1u, kPortMuxAlt4);  // 设置PTD1端口模式

  15. TPM_DRV_SetClock(0, kTpmClockSourceModuleHighFreq, kTpmDividedBy2);
  16. //设置TPM时钟, 使用TPM0,高速时钟, 分频系数为2 </p><p>    TPM_InitStructure.isDBGMode = 0;  //debug模式下,如果为0就暂停, 如果是1就继续运行
  17.     TPM_InitStructure.isGlobalTimeBase = 0;  //全局时钟 , 禁止
  18.     TPM_InitStructure.isTriggerMode = 0;   //触发模式, 禁止
  19.     TPM_InitStructure.isCountReloadOnTrig = 0;  //触发后不重新装载, 这里没有用到触发模式
  20.     TPM_InitStructure.isStopCountOnOveflow = 0; // 在溢出后继续计数</p><p>    PWM_InitStructure.mode = kTpmCenterAlignedPWM;  // PWM 中心对齐
  21.     PWM_InitStructure.edgeMode = kTpmLowTrue;   //
  22.     PWM_InitStructure.uFrequencyHZ  = 100000U;   //PWM频率100kHz
  23.     PWM_InitStructure.uDutyCyclePercent = 0U;   //占空比 0
  24.    
  25. GPIO_Init();         // 初始化PTD2 , 默认高电平
  26.     TPM_DRV_Init(0,&TPM_InitStructure);    //TPM初始化
  27.     TPM_DRV_PwmStart(0,&PWM_InitStructure,1);  //开始输出PWM波, TPM0, 通道1
  28.    while(1)
  29. {
  30.   for(cnt = 0;cnt < 100;cnt++)
  31.   {
  32.    PWM_InitStructure.uDutyCyclePercent = table[cnt]; //不断修改占空比
  33.             TPM_DRV_PwmStart(0,&PWM_InitStructure,1);

  34.   }</p><p>        
  35.         GPIO_DRV_TogglePinOutput(ref);      //到半个周期的时候翻转PTD2的电平
  36.         
  37.         for(cnt=100;cnt < 200;cnt++)
  38.     {
  39.    PWM_InitStructure.uDutyCyclePercent = table[cnt];
  40.             TPM_DRV_PwmStart(0,&PWM_InitStructure,1);
  41.       
  42.   } </p><p>
  43. </p><p>        GPIO_DRV_TogglePinOutput(ref);      //再过半个周期翻转PTD2的电平
  44. }
  45.   return 0;
  46. }

  47. </p>
复制代码


下面是波形图
这个正弦表有点问题



上传工程文件


这个的正弦表有点问题

这个的正弦表有点问题
最2.jpg
最终.jpg

评分

参与人数 1NXP金币 +25 收起 理由
小七 + 25 打赏!

查看全部评分

回复

使用道具 举报

该用户从未签到

19

主题

401

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1114
最后登录
2017-8-16
 楼主| 发表于 2015-8-24 10:30:38 | 显示全部楼层
在二楼上传工程文件吧

Freescale - 副本.zip

12.98 MB, 下载次数: 25, 下载积分: 威望 1

回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2023-9-17 19:57
  • 签到天数: 2310 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    107

    主题

    4270

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    10481
    最后登录
    2023-9-17
    发表于 2015-8-24 11:47:55 | 显示全部楼层
    波形是不太好。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19

    主题

    401

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1114
    最后登录
    2017-8-16
     楼主| 发表于 2015-8-24 11:48:22 | 显示全部楼层

    还是正弦表的问题吧?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    13149
    最后登录
    2019-1-27
    发表于 2015-8-24 13:33:36 | 显示全部楼层
    楼主,编辑帖子时可以使用 “添加代码文字“功能,如下图示, 帖上来的代码就会比较整齐了

    代码.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19

    主题

    401

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1114
    最后登录
    2017-8-16
     楼主| 发表于 2015-8-24 14:08:41 | 显示全部楼层
    小七 发表于 2015-8-24 13:33
    楼主,编辑帖子时可以使用 “添加代码文字“功能,如下图示, 帖上来的代码就会比较整齐了

    上面的回车都变成了<\p>
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-4 20:13
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    18

    主题

    1093

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1679
    最后登录
    2019-4-30
    发表于 2015-8-27 13:09:45 | 显示全部楼层
    支持一下楼主
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19

    主题

    401

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1114
    最后登录
    2017-8-16
     楼主| 发表于 2015-8-27 13:27:34 | 显示全部楼层

    谢谢支持~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-4-27 16:38
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    15

    主题

    213

    帖子

    0

    高级会员

    Rank: 4

    积分
    539
    最后登录
    2022-5-23
    发表于 2015-8-30 10:30:58 | 显示全部楼层
    共同学习,共同进步
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24

    主题

    502

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1363
    最后登录
    1970-1-1
    发表于 2015-8-30 16:05:18 | 显示全部楼层
    不错,支持下!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-28 12:18 , Processed in 0.107329 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表