📄 main.c
字号:
/*
FILENAME: main.c (selftest)
VERSION: 1.0.0.0
AUTHOR: Tony Huang (cnwzhjs@gmail.com)
RELEASE DATE: Nov 28, 2007
DESCRIPTION: The selftest program for the motor part of the wireless car
*/
#include <regx51.h>
#include <absacc.h>
#include "timer.h"
#include "pwm.h"
#include "motor.h"
#include "serial.h"
#define CAR_ADDRESS 3
sbit led = P3^5;
int cnt = 5000;
unsigned char seconds = 0;
bit flag;
void system_init(void);
void wait(unsigned char sec);
void self_test(void);
unsigned char cmd ;
signed char parameter;
void main(void)
{
system_init();
drv_motor_set_speed(0, 0);
drv_motor_set_speed(1, 0);
led = 1;
self_test();
while(1)
;
}
void self_test(void)
{
// full speed move forward
drv_motor_set_speed(0, 100);
drv_motor_set_speed(1, 100);
wait(2);
// full speed move backward
drv_motor_set_speed(0, -100);
drv_motor_set_speed(1, -100);
wait(2);
// half speed move forward
drv_motor_set_speed(0, 50);
drv_motor_set_speed(1, 50);
wait(2);
// half sp0eed move backward
drv_motor_set_speed(0, -50);
drv_motor_set_speed(1, -50);
wait(2);
// turn right
drv_motor_set_speed(0, -100);
drv_motor_set_speed(1, 100);
wait(2);
// turn left
drv_motor_set_speed(0, 100);
drv_motor_set_speed(1, -100);
wait(2);
drv_motor_set_speed(0, 0);
drv_motor_set_speed(1, 0);
led = !led;
}
void system_init(void)
{
drv_timer_init(0,0,2,0,0,2);
TH0 = 0xec;
TL0 = 0xec;
TH1 = 0xe8;
TL1 = 0xe8;
drv_timer_enable(0);
drv_timer_enable(1);
SM0 = 1;
SM1 = 1;
PCON = 0;
REN = 1;
ET0 = 1;
EA = 1;
}
void timer0_int(void) interrupt 1 using 1
{
drv_pwm_on_timer();
if(cnt > 0)
{
cnt --;
return;
}
else
{
seconds++;
}
cnt = 5000;
}
void wait(unsigned char sec)
{
unsigned int expire = seconds + sec * 5;
while(expire > seconds)
;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -