智能车制作

标题: 有难题啊 [打印本页]

作者: happyzn75    时间: 2013-1-26 18:23
标题: 有难题啊
想用mc9s12xs128的输出比较功能控制舵机转动,但思来想去不知道该咋写。请大虾指教。
作者: dlyt03    时间: 2013-1-26 18:30
帮顶
作者: ludlee    时间: 2013-1-26 18:39
输出比较控制舵机?不是PWM吗?
作者: exiao    时间: 2013-1-26 18:42
你想怎么个比较法?
作者: happyzn75    时间: 2013-1-26 19:03
ludlee 发表于 2013-1-26 18:39
输出比较控制舵机?不是PWM吗?

输出比较就可以出PWM波啊

作者: ludlee    时间: 2013-1-26 19:07
happyzn75 发表于 2013-1-26 19:03
输出比较就可以出PWM波啊

我知道,但是那个不如PWM 好控制,理论上还是用PWM吧
作者: happyzn75    时间: 2013-1-26 19:41
ludlee 发表于 2013-1-26 19:07
我知道,但是那个不如PWM 好控制,理论上还是用PWM吧

pwm只能4个16位的,这个可以是8路16位PWM,精度高

作者: happyzn75    时间: 2013-1-26 19:42
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include"5110.h"
#pragma LINK_INFO DERIVATIVE "MC9S12XS128"
int counter;




void main(void)
{
  /* put your own code here */
  LCD_init();
  LCD_clear();
  num_Display(30,0,1000);
  counter=0;
  
  
  DisableInterrupts;
  TSCR2=0X82;//4分频
  TIOS=0x40; //pt6oc
  TCTL1=0x10;//输出返转
  TCNT=(65535-50000);
  TC6=2600;
  TTOV=0x40;
  TIE=0x00;
  TSCR1=0x80;//定时器使能
  while(1);



        EnableInterrupts;


  for(;;) {
    _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 14 oc_isr(void)
{
     
     TFLG2_TOF=1;
     TCNT=(65536-50000);
   
      
      
}


作者: happyzn75    时间: 2013-1-26 19:45
调整TC6的值就可以调整舵机转向。
但问题是一旦重新给单片机上电,就会出现舵机发抖,旋转,不能保持住其位置,但一重新下程序就又好了,一断电再接电就又出问题了,难道程序有问题吗?
作者: happyzn75    时间: 2013-1-26 19:45
晶振16M
作者: 严鸿雁    时间: 2013-1-26 20:17
程序不咋地




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