智能车制作

标题: 单片机捕捉不到编码器脉冲 [打印本页]

作者: 米高扬    时间: 2011-5-30 01:19
标题: 单片机捕捉不到编码器脉冲
我用示波器看编码器输出是方波,但是写的单片机程序显示计数器,求高手帮助
  1. #include <hidef.h>      
  2. #include <MC9S12XS128.h>
  3. #pragma LINK_INFO DERIVATIVE "mc9s12xs128"



  4. //接口定义: 编码器脉冲中断信号接PT7  
  5. void shijian(void);         
  6. void chaopin(void);  //超频程序      
  7. void TIM_init(void);//定时程序
  8. int chesudu;
  9.         
  10. void main(void)
  11. {     
  12.                   
  13. chaopin(); //超频函数初始化   
  14. shijian() ;
  15. TIM_init();//计数器函数初始化  

  16. for(;;)
  17.   
  18.   {
  19.   
  20.   //把要处理的函数放在这里
  21.   
  22.   
  23.   }

  24. }

  25. void chaopin(void)//64M
  26. {  
  27.     CLKSEL=0X00;   
  28.     PLLCTL_PLLON=1;   
  29.     SYNR =0xc0 | 0x07;                        
  30.     REFDV=0xc0 | 0x01;
  31.     POSTDIV=0x00;      
  32.     _asm(nop);         
  33.     _asm(nop);
  34.     _asm(nop);
  35.     _asm(nop);
  36.     while(!(CRGFLG_LOCK==1));   
  37.     CLKSEL_PLLSEL =1;                                  
  38. }

  39. void TIM_init(void)
  40. {   
  41.   PACTL=0X50;    //Pulse Accumulator Control Register 01010000,捕捉上升沿,Use timer prescaler clock as timer counter clock
  42.   PACNT=0X0000;    //Pulse Accumulators Count Registers

  43.       
  44. }

  45. void shijian(void) {     //Periodic Interrupt Timer

  46.    PITCFLMT_PITE=0;     //PIT is disabled  
  47.    PITCE_PCE0=1;        //PIT chanel_0 定时器0 (共四个定时器)enabled  
  48.    PITLD0=9999;         //1毫秒 PIT Load Register
  49.    PITMTLD0=5;          //time-out period = (PITMTLD + 1) * (PITLD + 1) / fBUS
  50.    PITMUX=0x00;          //0 The corresponding 16-bit timer counts with micro time base 0
  51.    PITINTE_PINTE0=1;     //PIT Interrupt Enable Register
  52.    PITCFLMT_PITE=1;       //PIT is enabled
  53.                
  54.          
  55. }



  56. //=======速度采集中断函数,已经完全可以采集速度的=========

  57. #pragma CODE_SEG NON_BANKED

  58. void interrupt 66 PIT0Interrupt(void)//测速的中断程序
  59. {  
  60.    chesudu=PACNT;//车速度值
  61.    
  62.           PITTF_PTF0=1; //定时器1标志位清零
  63.     PACNT=0X0000;


  64. }   
  65. #pragma CODE_SEG DEFAULT



复制代码

作者: lsa4100    时间: 2011-5-30 09:24
你的程序我没看,我想问的是你给编码器信号线加上拉电阻没
作者: 米高扬    时间: 2011-5-31 10:41
回复 2# lsa4100


    加上拉电阻了,问题找到了,是没有中断使能
作者: xxl470    时间: 2011-6-1 20:33

作者: tongyonghua123    时间: 2011-10-9 14:27
哪里?
作者: 我是北丐    时间: 2012-2-14 16:15
帮顶!
作者: 孜孜和少阳    时间: 2012-2-27 15:10
缺少了PT7口的中断使能吗
作者: 曾义和    时间: 2012-3-7 12:11
孜孜和少阳 发表于 2012-2-27 15:10
缺少了PT7口的中断使能吗

妹的,跑这里来了啊!!哈哈
作者: 孜孜和少阳    时间: 2012-3-7 16:05
曾义和 发表于 2012-3-7 12:11
妹的,跑这里来了啊!!哈哈

举报你
作者: 尘封的熊猫1990    时间: 2012-5-30 17:26
干嘛要用PT7 的中断使能啊




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2