查看: 6774|回复: 9

[其他] DZ60输入捕捉和PWM输出问题

[复制链接]

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2013-1-18 23:36:05 | 显示全部楼层 |阅读模式
DZ60输入捕捉和PWM输出问题
 
现在在用DZ60做一块测试板子,要求能输出设定频率的pwm,并且要开发PWM测频功能。
现在用TPM2已经实现了输出设定频率PWM功能,但是在用TPM1的通道0实现PWM测频时却不得要领。
测试方法是每次捕捉到上升沿产生通道0的中断,在中断中记录下通道0计数器的值。然后两次值相减是周期,周期倒数是频率。
 
但是我发现我通道0测试到的频率值经常是TPM2产生的那个PWM的频率,问题是,通道0这边并没有任何输入,求高手指点,如有描述不清明天附程序……
我知道答案 目前已有8人回答
回复

使用道具 举报

该用户从未签到

11

主题

288

帖子

0

版主

Rank: 7Rank: 7Rank: 7

积分
610
最后登录
1970-1-1
发表于 2013-1-19 10:08:35 | 显示全部楼层

RE:DZ60输入捕捉和PWM输出问题

还是把程序贴出来吧。肯能是你设置的问题。
回复 支持 反对

使用道具 举报

该用户从未签到

27

主题

418

帖子

0

新手上路

Rank: 1

积分
228
最后登录
1970-1-1
发表于 2013-1-19 11:09:05 | 显示全部楼层

回复:DZ60输入捕捉和PWM输出问题

这个有可能是有干扰了,把tpm1的0通道的引脚接地看还能终端么?要是还能终端就可能是你的程序设置有问题了,要是没有中断可以找个波形发生器接到板子上看测得的结果对不对
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
 楼主| 发表于 2013-1-19 14:54:20 | 显示全部楼层

回复:DZ60输入捕捉和PWM输出问题

TPM2SC_CLKSA=1;
  TPM2SC_CLKSB=0;      //bus clk   8MHz/24M
  TPM2SC_PS=3;        //预分频8
  TPM2SC_CPWMS=0;     //边缘对齐
  //设置TPM2CH0输出
  TPM2C0SC_MS0B=1;
  TPM2C0SC_ELS0A=1;   
  TPM2C0SC_ELS0B=0;
  TPM2MOD=PwmDiv;      
  TPM2C0V=PwmDiv/2;        
  TPM2CNT=0;   
*******************************以上部分为PWM输出,以下为测频***************
TPM1SC=0x0c;//TPM1时钟源为总线时钟;分频系数为16;溢出中断禁止
       
        TPM1C0SC=0x48;//通道1中断使能,下降沿输入捕捉
    TPM1MODH=0xea;   //定时器1模数设置 60000
        TPM1MODL=0x60;
        TPM1CNTH=0;  
         
interrupt VectorNumber_Vtpm1ch0 void TPM1_CH0OUT_ISR(void)//计时器1中断
{  DisableInterrupts;
                 TPM1C0SC_CH0F=0;
           n0=TPM1C0V-m0;   
m0=TPM1C0V ;   
  DisableInterrupts;  }
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
 楼主| 发表于 2013-1-19 14:55:31 | 显示全部楼层

回复:DZ60输入捕捉和PWM输出问题

回复第 2 楼 于2013-01-19 10:08:35发表:
还是把程序贴出来吧。肯能是你设置的问题。 

已经贴出来了,在3楼,麻烦版主帮忙看看
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
 楼主| 发表于 2013-1-19 16:48:26 | 显示全部楼层

回复:DZ60输入捕捉和PWM输出问题

回复第 3 楼 于2013-01-19 11:09:05发表:
这个有可能是有干扰了,把tpm1的0通道的引脚接地看还能终端么?要是还能终端就可能是你的程序设置有问题了,要是没有中断可以找个波形发生器接到板子上看测得的结果对不对 

接地就不能中断了,干扰真的很厉害哎,悬空的时候能采集到还多上升下降沿,我再试试测试准不准啊,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
 楼主| 发表于 2013-1-19 16:48:29 | 显示全部楼层

回复:DZ60输入捕捉和PWM输出问题

回复第 3 楼 于2013-01-19 11:09:05发表:
这个有可能是有干扰了,把tpm1的0通道的引脚接地看还能终端么?要是还能终端就可能是你的程序设置有问题了,要是没有中断可以找个波形发生器接到板子上看测得的结果对不对 

接地就不能中断了,干扰真的很厉害哎,悬空的时候能采集到还多上升下降沿,我再试试测试准不准啊,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
 楼主| 发表于 2013-1-19 16:48:32 | 显示全部楼层

回复:DZ60输入捕捉和PWM输出问题

回复第 3 楼 于2013-01-19 11:09:05发表:
这个有可能是有干扰了,把tpm1的0通道的引脚接地看还能终端么?要是还能终端就可能是你的程序设置有问题了,要是没有中断可以找个波形发生器接到板子上看测得的结果对不对 

接地就不能中断了,干扰真的很厉害哎,悬空的时候能采集到还多上升下降沿,我再试试测试准不准啊,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
 楼主| 发表于 2013-1-19 17:15:48 | 显示全部楼层

回复:DZ60输入捕捉和PWM输出问题

现在测试起来应该没问题了,谢谢各位,不是程序的问题……
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

14

帖子

0

新手上路

Rank: 1

积分
21
最后登录
1970-1-1
发表于 2013-3-29 17:45:20 | 显示全部楼层

RE:DZ60输入捕捉和PWM输出问题

nterrupt VectorNumber_Vtpm1ch0 void TPM1_CH0OUT_ISR(void)//计时器1中断
这个函数写得有点问题了,
怎么在函数的结尾还是DisableInterrupts呢?那么全局中断就不能再进入了,建议换成EnableInterrupts试试
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-20 04:38 , Processed in 0.117007 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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