|
情况说明:
电路: 德国人的1.2版电路图
编译环境: avr studio 5
MCU: ATmega8L
电机: 新西达2212 1000KV 电机
问题: 通电后,电机哧哧的响,不转。
已查明的情况: M8供电,VCC接12V电源时:查A+,B+,C+上臂(三极管的基极处),无PWM波。
M8供电,VCC接5V电源时:查A+,B+,C+上臂(三极管的基极处),无PWM波。
M8供电,VCC不接电源时:查A+,B+,C+上臂(三极管的基极处),有PWM波。
三极管使用S9013,不使用芯片,手动检查时:基极接5V,VCC接12V,上臂均能导通。
芯片情况: 因为使用的编程器,无法读出校准字,所以采用内部8M,无效准时钟。产生的PWM波,经过测试,为24KHZ左右。
附程序:
#define CHAU_ON {TCCR2=0x41;TCCR1A=0x81;} //OC1A通道选通
#define CHBU_ON {TCCR2=0x41;TCCR1A=0x21;} //OC1B通道选通
#define CHCU_ON {TCCR1A=0x01;TCCR2=0x61;} //OC2通道选通
#define CHAD_ON {PORTD=0x00;PORTD|=0x01;} //A下臂通道打开pd0
#define CHBD_ON {PORTD=0x00;PORTD|=0x02;} //B下臂通道打开pd1
#define CHCD_ON {PORTD=0x00;PORTD|=0x04;} //C下臂通道打开pd2
void Tpwm_init(void)
{
// T/C1 初始化
TCCR1A=0x01; //暂时不给通道输出,但是已经产生了PWM波,选用快速PWM模式。
TCCR1B=0x01; //匹配时清零,TOP:255
OCR1A=0;
OCR1B=0;
// T/C2 初始化
TCCR2=0x41; //暂时不给通道输出,TOP:255,
OCR2=0; //占空比:用rate调节
}
void PWMC(void) //PWM使能;
{
OCR1A=50;
OCR1B=50;
OCR2=50;
}
void Slave(void) //从机全初始化
{
OSCCAL=0xFF;
DDRB=0x0F;
DDRC=0x00;
DDRD=0x87;
PORTB=0x00;
PORTC=0x00;
PORTD=0x00;
}
void Origin(void) //转动程序
{
switch (State)
{
case 0:
CHBD_ON
CHAU_ON
State=1;
break;
case 1:
CHCD_ON
CHAU_ON
State=2;
break;
case 2:
CHCD_ON
CHBU_ON
State=3;
break;
case 3:
CHAD_ON
CHBU_ON
State=4;
break;
case 4:
CHAD_ON
CHCU_ON
State=5;
break;
case 5:
CHBD_ON
CHCU_ON
State=0;
break;
}
}
void delay_us(double us) //微秒级定时
{
TCNT0=0x00;
while(TCNT0<us);
}
void delay_ms(double ms) //毫秒级定时
{
uint j;
while(ms--)
{
delay_us(99);
delay_us(99);
delay_us(99);
delay_us(99);
delay_us(99);
delay_us(99);
delay_us(99);
delay_us(99);
delay_us(99);
delay_us(99);
}
}
void time_Init(void) //定时器0初始化
{
TCCR0=0x02; //系统八分频
}
/*void int1_init(void)
{
MCUCR|=0x08;
GICR |=0x80;
} */
/*SIGNAL(SIG_INTERRUPT1)
{
flag=255;
RL_ON;
while(flag--) ;
State++;
State%=6;
RL_OFF;
} */
int main(void)
{
//sei();
Slave();
time_Init();
Tpwm_init();
PWMC();
//int1_init();
while(1)
{ for (flag=0;flag<200;flag++)
{
delay_ms(1);
}
RL_ON;
Origin();
RL_OFF;
}
}
*************************************************************************************************************************************
请前辈们帮帮我,谢谢啦…… |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|