查看: 2138|回复: 2

[其他] 频率采集问题

[复制链接]

该用户从未签到

2

主题

8

帖子

0

新手上路

Rank: 1

积分
26
最后登录
1970-1-1
发表于 2013-5-4 09:42:29 | 显示全部楼层 |阅读模式
用的mc9s12g48单片机。通过捕获中断采集脉冲数和匹配中断定时间来计算采集频率
             
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19
            20
            21
            22
            23
            24
            25
            26
            27
            28
            29
            30
            31
            32
            33
            34
            35
            36
            37
            38
            39
            40
            41
            42
            43
            
                        void timer_init(void)
            {
            TSCR1_TEN=0;//关定时器
            TFLG2_TOF=1;
              
            TIOS_IOS0=1;//匹配中断,设置1ms定时
            TCTL2_OM0=0;
            TCTL2_OL0=1;
            TC0=0X3E8;
            TIE_C0I=1;
            TFG1_C0F=0;
              
            TIOS_IOS5=0;//捕获中断,采集脉冲
            TCTL3_EDG5A=1;
            TCTL3_EDG5B=0;
            TIE_C5I=1;
            TFLG1_C5F=1;
              
            TSCR2=0X85;//设置定时器工作频率
            TSCR1_TEN=1;//开定时器
            }
              
            __interrupt 8 void timch0(void)//定时器通道0匹配中断,用于定时
            {
            TFLG1_C0F=0X01;
            TC0+=0X3E8;
            flag_1ms=1;
            time_50ms++;
            if(time_50ms==50)//50ms计算一次脉冲数
            {
            time_50ms=0;
            flag_50ms=1;
            temp_zsplus=zs_plus;
            zs_pllus=0;
            }
            }
            __interrupt 13 void timch5(void)//定时器通道5,捕获中断采集脉冲
            {
            TFLG1_C5F=1;
            zs_puls++;
            }
            }
            
            
频率计算我就不写了,我在这边采集到的temp_zsplus值有问题。大概采集有几次会乱跳,我用一个数组保存这个值,20个值,在频率稳定的情况下,频率越高就会出现越多temp_zsplus值和其他正常比大概1.15倍的值。另外,我试过,不给频率不进捕获中断,用定时器和标准时间对比是准的。提供频率采集后,定时器时间比时间慢了,可能有几次中断没进。高手们帮我看看有什么问题。谢谢
 
我知道答案 目前已有1人回答
回复

使用道具 举报

该用户从未签到

2

主题

8

帖子

0

新手上路

Rank: 1

积分
26
最后登录
1970-1-1
 楼主| 发表于 2013-5-4 09:44:06 | 显示全部楼层

RE:频率采集问题

这是仿真的数据,zs_buf存的就是50MS采集到的脉冲数,现在频率是3KHZ,150是正常,但是会有几个不正常的值,频率越高,这种值越多。图片要怎么发?
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

8

帖子

0

新手上路

Rank: 1

积分
26
最后登录
1970-1-1
 楼主| 发表于 2013-5-4 09:50:35 | 显示全部楼层

回复:频率采集问题

采集数组,50ms
360桌面截图20130504084725.jpg
360桌面截图20130504084749.jpg
360桌面截图20130504084904.jpg
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-21 11:22 , Processed in 0.093525 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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