打印
[技术问答]

使用MO58LBN P2.6捕捉功能测量频率无法读出寄存器CRLR2B和CFLR2B?

[复制链接]
3129|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DLF5|  楼主 | 2014-7-23 21:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 DLF5 于 2014-7-23 21:48 编辑

有朋友使用过该功能么?给段例程或给予知道,谢谢了。

按照例程改的程序,在PWMB中断中读出的CRLR2B和CFLR2B值要么是0xFFFF,或者是0x0000,在中断中驱动一LED灯表明PWMB中断正常,当有频率信号进入P2.6时,LED闪烁,频率高时闪烁块,频率低时闪烁慢。P2.6无信号输入时,灯不亮。以上现象说明上升沿和下降沿捕捉中断正常,只是寄存器读出的数值不对,这是什么原因造成的?

我用的是直接寄存器控制方式!
沙发
haolaishi| | 2014-7-24 08:54 | 只看该作者
你上程序看看,确定按照例程修改的?那么把例程烧进去结果如何

使用特权

评论回复
板凳
DLF5|  楼主 | 2014-7-24 09:57 | 只看该作者
我的目标板不支持例程!

使用特权

评论回复
地板
DLF5|  楼主 | 2014-7-24 10:37 | 只看该作者
本帖最后由 DLF5 于 2014-7-31 15:02 编辑

void PWMB_Init(void)   
{
    P2_MFP = P2_MFP & (~P26_AD14_PWM6 ) | PWM6 ; //中:设置P2.6,功能
    P2_PMD = P2_PMD & (~Px6_PMD ) | Px6_QB;      //中:配置P2.6为准双向模式

    APBCLK |= PWM67_CLKEN;                           //中:使能PWM6,1时钟6
    CLKSEL2 = (CLKSEL2 & (~PWM67_CLK)) | PWM67_12M;         //中:选择外部12M晶振输入作为Capture6和PWM6时钟源6

    PPRB =   0x000000B0;                                //PWM67 B 11+1=12预分频率      
    CSRB  = CSRB & 0xF8FF ;                                 //
    CSRB |= CSR6_CLK_1;                                      //中:设置PWM6时钟分频值1
    PCRB |= CH6_AU_RL;                                //使能PWM6定时器开始运行/自动重装/关闭反向
    PCRB &=(~CH6INV_ON);

    CNR2B = 0xFFFF;                                  //中:设置Capture6重载寄存器的值
    CCR2B &= ~INV6_ON;                               //中:禁止Capture0反向功能
    CCR2B |= CAPCH6EN;                               //中:使能PWM通道6捕捉功能
    CAPENRB |= CAPCH6_ON;                            //中:使能Capture0通道输入有效
                                    
    PIERB |= PWMIE6;                                 //中:使能PWM通道6中断
    CCR2B |= CFL_IE6;                                //中:使能Capture6下降沿锁定中断
    CCR2B |= CRL_IE6;                                //中:使能Capture6上升沿锁定中断
    NVIC_ISER = PWMB_INT;                            //中:使能NVIC PWM4~7中断


    PCRB |= CH6EN ;                         //中:使能PWM6下数计数器开始计数

}

void PWMB_IRQHandler(void)            
{   
    u32status = CCR2B;                               //中:获取Capture通道6控制寄存器的值
    uiLow_Pulse = CNR2B - CRLR2B;                    //中:计算低脉冲宽度
    uiHigh_Pulse = CNR2B - CFLR2B;                   //中:计算高脉冲宽度
     
    if (u32status & CRLRI6)                          //中:如果Capture6捕获到一个下降沿,表示一个完整的PWM周期捕获完成
    u32DutyCycle = (uiLow_Pulse + uiHigh_Pulse) /1000;   //周期计算ms

/*LED中断显示*/
    FLAG24 = ~FLAG24;
   if (FLAG24)
    P2_DOUT |= 0x10;    //LED灭
    else
  P2_DOUT &= 0xEF;    //LED亮
}

使用特权

评论回复
5
DLF5|  楼主 | 2014-7-25 08:54 | 只看该作者
哪位朋友帮忙给看看好吗

使用特权

评论回复
6
骗子的片子| | 2014-7-25 15:32 | 只看该作者
haolaishi 发表于 2014-7-24 08:54
你上程序看看,确定按照例程修改的?那么把例程烧进去结果如何

又见到你了,热心的人

使用特权

评论回复
7
骗子的片子| | 2014-7-25 15:33 | 只看该作者
DLF5 发表于 2014-7-24 09:57
我的目标板不支持例程!

啊,竟然不支持例程?

使用特权

评论回复
8
骗子的片子| | 2014-7-25 15:33 | 只看该作者
DLF5 发表于 2014-7-24 10:37
void PWMB_Init(void)   
{
    P2_MFP = P2_MFP & (~P26_AD14_PWM6 ) | PWM6 ; //中:设置P2.6,功能

手机上的,回去看

使用特权

评论回复
9
骗子的片子| | 2014-7-25 15:34 | 只看该作者
DLF5 发表于 2014-7-25 08:54
哪位朋友帮忙给看看好吗

别着急,这边大神不少,会帮你的

使用特权

评论回复
10
骗子的片子| | 2014-7-25 15:34 | 只看该作者
先帮楼主顶一下,各位帮忙给看看

使用特权

评论回复
11
DLF5|  楼主 | 2014-7-25 20:11 | 只看该作者
谢谢片子了。

有朋友跑过例程么?PWM0能捕捉到PWM1的波形么?

使用特权

评论回复
12
DLF5|  楼主 | 2014-7-26 21:34 | 只看该作者
今天改造了一下我的板子,把直接寄存器方式的例程烧进去,似乎不工作,连PWM输出都没有,而函数的例程有PWM输出,但PWM0捕捉PWM1的数据没有办法观察,到底是否捕捉正常不知道。

使用特权

评论回复
13
DLF5|  楼主 | 2014-7-28 21:22 | 只看该作者
怎么没人接招啊!!!

使用特权

评论回复
14
zxf0168| | 2014-7-28 21:40 | 只看该作者
pwm咋回事

使用特权

评论回复
15
zxf0168| | 2014-7-28 21:40 | 只看该作者
DLF5 发表于 2014-7-24 09:57
我的目标板不支持例程!

官方的例程不支持?

使用特权

评论回复
16
DLF5|  楼主 | 2014-7-29 13:18 | 只看该作者
官方例程是PWM1输出方波,PWM0来捕捉。
直接寄存器方式的例程,在我改造的板上连PWM方波都没有输出,而函数方式的有方波输出,但是我无法开到是否捕捉到方波,以及捕捉到的数据。

使用特权

评论回复
17
从小木丁丁| | 2014-7-29 21:55 | 只看该作者
DLF5 发表于 2014-7-29 13:18
官方例程是PWM1输出方波,PWM0来捕捉。
直接寄存器方式的例程,在我改造的板上连PWM方波都没有输出,而函数 ...

你不确定是否捕捉到对吧

使用特权

评论回复
18
DLF5|  楼主 | 2014-7-30 11:35 | 只看该作者
是的,跑例程无法确定是否捕捉到。

使用特权

评论回复
19
DLF5|  楼主 | 2014-7-30 13:45 | 只看该作者
奔跑的牛能否给推荐个技术支持?我可以问下新唐的技术支持。

使用特权

评论回复
20
sdnumcu| | 2014-7-30 23:40 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

71

帖子

0

粉丝