打印

新手求救NXP LPC2378脉冲采集问题,急!!!麻烦各位大侠帮忙!感谢

[复制链接]
1857|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
第一次调程序,一个很简单的程序调试了好久还是有问题,麻烦高手帮帮忙,看下是哪里的问题,谢啦!
ADS1.2  ,AXD仿真   用定时器采集500Khz的脉冲信号,但是断点执行的时候,每次定时器时间到的时候,读取的counter值都不对。。。
程序如下:
#include         "config.h"
#include    "math.h"
#include    "ISR.H"
#define   F_IO    (1<<9)          //P0.9控制F_IO
uint32 counter=0;           //20ms采集到的脉冲个数

uint32 max;
int main (void)
{  
   uint32 f=0,v=0;                                //f为采集的脉冲宽度,v为实际电压值
   uint32 i=0;
   max=0;
   PINSEL0 = 0x00000000;                                // 设置管脚连接GPIO                               

                       
        IO0DIR=(~F_IO);                                // 设置F_IO控制口输入                                       

       

        /* 定时器0初始化 */
        //Fpclk=12Mhz
        T0TC    = 0;                                                // 定时器设置为0                       

                                                       
        T0PR    = 0;                                                // 时钟不分频                               

                                                       
        T0MCR   = 0x03;                                                // 设置T0MR0匹配后复位T0TC,并产生

//中断标志                               
        T0MR0   = Fpclk / 50;                                // 20ms定时                                       

        T0TCR        = 0x03;                                                //启动并复位定时器
        T0TCR   = 0x01;                                                // 启动定时器                               

while (1)
        {
           if((IO0PIN)&F_IO)
           {
                          
                        counter++;                                                          //低电平时加1
                        while((IO0PIN)&F_IO);                   //p0.0为高电平一直等待
if((T0IR&(1<<0))==1)                       //查询方式检测定时器时间到
                       
                        {
                        f=(1000*counter)/20;        //计算采集到的脉冲频率
                      v=(10*f)/2000000;                //计算实际电压值,0~2M对应0~10V,线性关系
                     
            if(counter>max)max=counter;
                        counter=0;
       
                        T0IR        = 0x01;                                        // 清除中断标志       
                        }
                                 
                }

        }
}

相关帖子

沙发
58HEYANG|  楼主 | 2013-5-20 19:22 | 只看该作者
补充一下,脉冲波形见附件图片,明天要交。。。
麻烦各位大侠帮帮忙!太感谢啦!

1.PNG (758.41 KB )

1.PNG

使用特权

评论回复
板凳
huangxz| | 2013-5-20 19:45 | 只看该作者
程序好像没啥问题,楼主时间参数有没有确认好啊

使用特权

评论回复
地板
huangxz| | 2013-5-20 20:08 | 只看该作者
有图为证

使用特权

评论回复
5
58HEYANG|  楼主 | 2013-5-21 10:51 | 只看该作者
huangxz 发表于 2013-5-20 19:45
程序好像没啥问题,楼主时间参数有没有确认好啊

您是指哪些时间参数?
定时器设置还是Fpclk?

使用特权

评论回复
6
58HEYANG|  楼主 | 2013-5-21 11:34 | 只看该作者
再请教一下大侠们,用2378的IO口可以采集到500khz的脉冲频率吗(上面给出的波形)?
感谢!

使用特权

评论回复
7
huangxz| | 2013-5-21 12:18 | 只看该作者
58HEYANG 发表于 2013-5-21 10:51
您是指哪些时间参数?
定时器设置还是Fpclk?

都包含

使用特权

评论回复
8
huangxz| | 2013-5-21 12:19 | 只看该作者
58HEYANG 发表于 2013-5-21 11:34
再请教一下大侠们,用2378的IO口可以采集到500khz的脉冲频率吗(上面给出的波形)?
感谢! ...

可以,不过应该用capture方式

使用特权

评论回复
9
58HEYANG|  楼主 | 2013-5-21 12:36 | 只看该作者
哦哦。太感谢啦!我试一下捕捉方式~

使用特权

评论回复
10
58HEYANG|  楼主 | 2013-5-21 14:31 | 只看该作者
huangxz 发表于 2013-5-21 12:19
可以,不过应该用capture方式

请问定时器1捕捉输入的话下面这样设置对吗?还需要设置什么吗?为什么采不到数据?
  PINSEL3 = 3 << 4;           // P1.18连接捕获CAP1.0,作为计数的外部输入

         綢
        T1CTCR = (0x02) |                        // 计数器模式,下降沿捕获  
                               (0x00 << 2);            // 选择CAP1.0                      
          
        T1TC   = 0;                                    // 初始化计数器值为0            
    T0TCR   = 0x03;

    T1TCR  = 0x01;              // 启动计数器

使用特权

评论回复
11
huangxz| | 2013-5-21 17:53 | 只看该作者
58HEYANG 发表于 2013-5-21 14:31
请问定时器1捕捉输入的话下面这样设置对吗?还需要设置什么吗?为什么采不到数据?
  PINSEL3 = 3  ...

捕捉要用中断方式,

使用特权

评论回复
12
58HEYANG|  楼主 | 2013-6-13 11:21 | 只看该作者
不好意思大侠,忘记结贴了,但是今天结贴时提示  “ 分数未分配完,或分数分配存在在错误”    怎么解决啊?谢谢!

使用特权

评论回复
13
杨爱林林| | 2013-6-14 08:21 | 只看该作者

使用特权

评论回复
评论
58HEYANG 2013-6-14 20:55 回复TA
给力 
评分
参与人数 1威望 +1 收起 理由
58HEYANG + 1 神马都是浮云
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

17

帖子

1

粉丝