⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 j dadshafdsaf dfdsafdfdsafdsafdsfd
💻 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 + -