智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2069|回复: 2
打印 上一主题 下一主题

求帮忙看下这个编码器程序,,怎么最后计数值一直为0,不出数据啊

[复制链接]

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
823
QQ
威望
387
贡献
232
兑换币
222
注册时间
2012-11-6
在线时间
102 小时
跳转到指定楼层
1#
发表于 2013-1-12 12:52:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */



#define  BUS_CLOCK                   32000000           //总线频率
#define  OSC_CLOCK                   16000000           //晶振频率
unsigned int jishu;

void INIT_PLL(void)
{
    CLKSEL &= 0x7f;       //set OSCCLK as sysclk
    PLLCTL &= 0x8F;       //Disable PLL circuit
    CRGINT &= 0xDF;
   
    #if(BUS_CLOCK == 40000000)
      SYNR = 0x44;
    #elif(BUS_CLOCK == 32000000)
      SYNR = 0x43;     
    #elif(BUS_CLOCK == 24000000)
      SYNR = 0x42;
    #endif

    REFDV = 0x81;         //PLLCLK=2×OSCCLK×(SYNR+1)/(REFDV+1)=64MHz ,fbus=32M
    PLLCTL =PLLCTL|0x70;  //Enable PLL circuit
    asm NOP;
    asm NOP;
    while(!(CRGFLG&0x08)); //PLLCLK is Locked already
    CLKSEL |= 0x80;        //set PLLCLK as sysclk
}

/*************************************************************/
/*                     PIT模块初始化函数                     */
/*************************************************************/
void init_PIT(){

PITMTLD0=249;     //为0通道8位计数器赋值
PITLD0=63999;     //为0通道16位计数器赋值   //(249+1)*(63999+1)=16000000个总线周期=0.5秒
PITMUX_PMUX0=0;   //第0通道使用微计数器0
PITCE_PCE0=1;     //第0通道计数器工作
PITCFLMT=0X80;    //使能周期中断定时器
PITINTE_PINTE0=1; //0通道定时器定时中断被使能
}

#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void PIT_INTER(void)
{
    if(PITTF_PTF0==1) {
      
      PITTF_PTF0=1;
      jishu=PACNT;
      PACNT=0;            
      
    }
  
}
#pragma CODE_SEG DEFAULT


     
void main(void)
{  
   DisableInterrupts;
   INIT_PLL();
   init_PIT();
   EnableInterrupts;
   while(1);
   
}

这是后面的PIT重断的向量地址VECTOR ADDRESS 0xFF7A PIT_INTER

编码器的正极和信号端我接了上拉电阻,刷新我设的1,但是一直不出数据,计数一直为0,
请帮忙看下是哪儿的问题

15

主题

446

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6597

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
4213
贡献
1314
兑换币
883
注册时间
2012-3-6
在线时间
535 小时
2#
发表于 2013-1-12 13:30:34 | 只看该作者
先接示波器,转动编码器看编码器有无正常输出
回复 支持 反对

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
823
QQ
威望
387
贡献
232
兑换币
222
注册时间
2012-11-6
在线时间
102 小时
3#
 楼主| 发表于 2013-1-18 11:05:21 | 只看该作者
前段时间有事,搁了这么久。。。实验室今天还停电了
---------------------------------------------割一下,原来是少写了一点东西,补上这个就行了
void pac_init(void)

{
  PACTL=0x40;
  PACNT=0x00;
}
希望对大家有些帮助
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 04:28 , Processed in 0.043664 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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