智能车制作

 找回密码
 注册

扫一扫,访问微社区

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

[电磁] 编码器问题

[复制链接]

14

主题

295

帖子

0

精华

常驻嘉宾

打酱油出道。。。

Rank: 8Rank: 8

积分
5865

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

威望
1727
贡献
1258
兑换币
1045
注册时间
2012-11-10
在线时间
1440 小时
跳转到指定楼层
1#
发表于 2013-1-2 19:56:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
3贡献
光电编码器在软件中是靠哪个模块接收脉冲的,有具体程序实例,求指教

最佳答案

查看完整内容

void SET_PLL(void) //设置总线频率为24M { CLKSEL=0x00; PLLCTL=0xe1; SYNR=2; REFDV=1; //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)=2*16M*3/2=48M PLLCTL=0x60; asm NOP; asm NOP; asm NOP; while((CRGFLG&0x08)==0); CLKSEL=0x80; //BUS Clok=pllclk/2=24M } void PIT_Init(void) //定时10ms中断初始化函数 { PITCFLMT_PITE=0;//PIT定时中断通道0关 PITCE_PCE0=1;//定时器通道0使能 ...

42

主题

1450

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8643

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

威望
4293
贡献
2166
兑换币
2108
注册时间
2011-10-20
在线时间
1092 小时
2#
发表于 2013-1-2 19:56:36 | 只看该作者
void SET_PLL(void) //设置总线频率为24M
{
CLKSEL=0x00;
PLLCTL=0xe1;
SYNR=2;
REFDV=1;     //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)=2*16M*3/2=48M  
PLLCTL=0x60;
asm NOP;     
asm NOP;
asm NOP;
while((CRGFLG&0x08)==0);
CLKSEL=0x80;  //BUS Clok=pllclk/2=24M
}
void PIT_Init(void) //定时10ms中断初始化函数
{
    PITCFLMT_PITE=0;//PIT定时中断通道0关
    PITCE_PCE0=1;//定时器通道0使能
    PITMTLD0=240-1;//8位定时器初值设定。240分频即24M/240 10us
    PITMUX=0x00;
    PITLD0=1000-1;//16位定时器初值设定  1000*10us=10ms
    PITINTE_PINTE0=1;//定时器中断通道0中断使能
    PITCFLMT_PITE=1;//定时器通道0使能
}
void TIM_Init(void)//脉冲累计初始化
{
    PACTL=0x50;//下降沿触发
    PACNT=0x0000;//清0
}  
void Servo_Init(void)                   //舵机 16 位PWM 控制6050,5175,4300 : 875
{
    PWME_PWME1=0;         //disable PWM1 servo
    PWMPRCLK=0x23;     //CLKA:8 分频3M ,CLKB:总线时钟6M
    PWMCLK=0 ;      //这就是默认值//通道1 用clock A 时钟源 //24MHZ/8=3M
    PWMPOL_PPOL1=0; //先高电平
    PWMCAE=0X00;    //对齐方式默认 左对齐 都是
    PWMCTL_CON01=1; //通道01级联
    PWMPER01=30000;//60000:20ms;;;20000//舵机的频率是300Hz,10ms   
    PWMDTY01=4500;//6000左极限,3500右极限,4500中间
    PWMCNT01=0;   //写计数寄存器,会使PWMDTYx,PWMPERx 进入锁存器,同时使能通道时会从此值 
    PWME_PWME1=1; //PWM 通道1 输出
}
void Forward_Init(void) // 假定前进方向,初始化函数
{  
    PWME_PWME7=0;  //CLOCKA=3M,CLOCKB=6M
    PWME_PWME5=0;
    PWMPOL_PPOL5=1; //low electrical level first,,high electrical level first,but high level makes mc33886 disabled
    PWMPOL_PPOL7=1;
    PWMCAE=0X00; //对齐方式默认左对齐
    PWMCTL_CON45=1;
    PWMCTL_CON67=1; //16BIT连接
    PWMPER45=750;   //设置的频率是8MHZ
    PWMPER67=750; //   
    PWMDTY45=100;
    PWMDTY67=0; //占空比精度1/750
    PWMCNT45=0;
    PWME_PWME5=1;
    PWME_PWME7=1;
}
void main(void)
{
/* put your own code here */
  DisableInterrupts;
  //RTI_Init();
  SET_PLL();
  PIT_Init();  
  TIM_Init();
  Servo_Init ();
  Forward_Init();
  SciInit();
  DDRB=0xff;          //定义为输出
  ATD0DIEN=0xFFFF;
  DDR1AD0=0x00;                              
  DDRA=0x00;
  EnableInterrupts; }
      //prefinal_weight=final_weight;
  } /* loop forever */
  /* please make sure that you never leave main */
#pragma CODE_SEG NON_BANKED
void interrupt 66 PIT0(void) ///////10ms
{
  PITTF_PTF0=1;
  pulse_count=PACNT; //PT7接受脉冲
  PACNT=0;}        
#pragma CODE_SEG DEFAULT  
你看看这个啊   转至论坛会员zsk-:P
回复

使用道具 举报

42

主题

1450

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8643

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

威望
4293
贡献
2166
兑换币
2108
注册时间
2011-10-20
在线时间
1092 小时
3#
发表于 2013-1-3 10:19:43 | 只看该作者
T7计数功能
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 03:00 , Processed in 0.045965 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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