智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1934|回复: 5
打印 上一主题 下一主题

CD4520与PT7口采集回来的脉冲差距很大,求帮助

[复制链接]

13

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2509
威望
1818
贡献
507
兑换币
278
注册时间
2013-3-17
在线时间
92 小时
毕业学校
西安建筑科技大学
跳转到指定楼层
1#
发表于 2013-5-21 16:41:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
static void IOC_Init(void)
{   
    TCNT =0x00;
    TSCR1=0x80;//时钟允许
    TSCR2=0x04;//div by 16
   
    PACTL=0xc0;//PT7 PIN,PACN32 16BIT,FALLing edge,NOT INTERRUPT
    TCTL3=0xc0;//c-输入捕捉7任何沿有效,            
    TCTL4=0x03;//0表示ICx禁止, 1表示上升沿, 2表示下降沿, 3表示任何沿      
    TIE  =0x00;//每一位对应相应通道中断允许,0表示禁止中断
    TIOS =0x00;//每一位对应通道的: 0输入捕捉,1输出比较
    TCTL3_EDG7x=1;//c-输入捕捉7任何沿有效,
    TCTL4_EDG0x=1;
}
void GetMotorPulse(void) //采集脉冲
{
  g_nLeftMotorPulseSigma+=PORTA;
  PORTE_PE2=1;
  _asm(nop);
  _asm(nop);
  PORTE_PE2=0;
  _asm(nop);
  _asm(nop);
  
  g_nRightMotorPulseSigma+=PACNT;
  PACNT=0;        
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED    //1ms中断
void interrupt 66 PIT0_ISR(void)
{
    PITTF_PTF0=1;           //清中断标志位
    PIT_CNT++;
     g_nSpeedControlPeriod++;
      SpeedControlOutput();
     if(PIT_CNT>=6) {
      
      PIT_CNT=0;
      GetMotorPulse();
    }
   
    else if(PIT_CNT<=4)
    {
   
     TSL1401_GetLine();  
    AD_Erzhihua();
   
      fAD_QIUHE() ;
     fAD_QIUJUNZHI();
     Drection_Out();
      SANG=ANG;  
   
    }
    else if(PIT_CNT==5) {
      
       g_nSpeedControlCount ++;
    if(g_nSpeedControlCount >= SPEED_CONTROL_COUNT)//SPEED_CONTROL_COUNT=20,
    {
      SpeedControl();
      
      g_nSpeedControlCount = 0;
      g_nSpeedControlPeriod = 0;
     }
   
    }
    else if(PIT_CNT==6)
                     
    {
        if(SANG>=ANG_center-10) {
         
        Fangxiang_Out();
        }
    }   
}

15

主题

64

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1529
威望
734
贡献
413
兑换币
382
注册时间
2012-11-27
在线时间
191 小时
毕业学校
2#
发表于 2013-5-21 16:57:38 | 只看该作者
PT7脉冲采集啊  干嘛输入捕捉
回复 支持 反对

使用道具 举报

13

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2509
威望
1818
贡献
507
兑换币
278
注册时间
2013-3-17
在线时间
92 小时
毕业学校
西安建筑科技大学
3#
 楼主| 发表于 2013-5-21 17:27:49 | 只看该作者
13486662319 发表于 2013-5-21 16:57
PT7脉冲采集啊  干嘛输入捕捉

大神,那该怎么写啊
回复 支持 反对

使用道具 举报

1

主题

243

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4541
威望
2107
贡献
1180
兑换币
1179
注册时间
2012-5-24
在线时间
627 小时
4#
发表于 2013-5-21 23:55:48 | 只看该作者
有必要这么复杂吗,PT7两句代码就够了
回复 支持 反对

使用道具 举报

15

主题

64

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1529
威望
734
贡献
413
兑换币
382
注册时间
2012-11-27
在线时间
191 小时
毕业学校
5#
发表于 2013-5-22 09:20:32 | 只看该作者
☆灬学乖 发表于 2013-5-21 17:27
大神,那该怎么写啊

书里不是有介绍脉冲采集的吗
                      //脉冲pt7初始化
  PACTL = 0x40;      //脉冲计数 下降沿
  PACNT = 0x0000;    // Pulse Accumulators Count Registers (PACNT)
读PANCT就是脉冲数      
回复 支持 反对

使用道具 举报

13

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2509
威望
1818
贡献
507
兑换币
278
注册时间
2013-3-17
在线时间
92 小时
毕业学校
西安建筑科技大学
6#
 楼主| 发表于 2013-5-22 19:38:11 | 只看该作者
为丞而琳 发表于 2013-5-21 23:55
有必要这么复杂吗,PT7两句代码就够了

妹妹,你再看看读脉冲程序,还有中断有没有问题啊
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-21 00:24 , Processed in 0.052462 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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