Commit f128bd38 authored by 957dd's avatar 957dd

加入了坦克激光控制。有人操控就亮激光

parent 845a4293
......@@ -52,6 +52,20 @@ void *thread_exit_time(void *arg)
delay_ms(100);
pthread_mutex_lock(&g_exit_count_mutex);
g_devcontrol_exit_count++;
if(g_device_type==DEVICE_TANK0204){
static int s_tank0204_pinval_temporary_timecount=0;
if(g_devcontrol_exit_count<2) {
s_tank0204_pinval_temporary_timecount=0;
device_gpio_control(DEVICE_TANK0204,6,1);
}
s_tank0204_pinval_temporary_timecount++;
if(s_tank0204_pinval_temporary_timecount>200){
s_tank0204_pinval_temporary_timecount=201;
device_gpio_control(DEVICE_TANK0204,6,0);
}
}
if (g_devcontrol_exit_count >= 5)
{
device_stop(g_device_type);
......
No preview for this file type
......@@ -105,7 +105,7 @@ const device_abnormal_close_t devcontrol_config_t[]= {
.device_id = DEVICE_TANK0204,
.device_abnormal_stop = tank0204_stop,
.device_close = device_poilthread_close,
.gpio_pin_pulled=pin_all_default,
.gpio_pin_pulled=tank0204_pin_all_default,
.gpio_pwm_pulled=tankpwm_default
},
......
......@@ -16,6 +16,7 @@ const gpiocontrol_t *gpio_control_config_t = NULL ;//gpio结构体标识
ThreadPool_t *g_pool_device_gpio_control_t;//gpio限位线程池标识,只在特地设备中打开
void public_pin_value(int pin,int value);
void tank0204_pin_value(int pin,int value);
void car0102_pin_value(int pin,int value);
void car0103_pin_value(int pin,int value);
void car0104_pin_value(int pin,int value);
......@@ -253,7 +254,7 @@ const gpiocontrol_t gpio_configs[] = {
{
.device_id = DEVICE_TANK0204,
.category_id=MARINE_TANK,
.device_pin_value =public_pin_value,
.device_pin_value =tank0204_pin_value,
.device_pwm_value =tank0204_pwm_value,
.device_gpio_pthread_create=device_gpio_control_threadpoll_init
},
......@@ -339,6 +340,32 @@ void public_pin_value(int pin,int value) { //引脚控制
}
void tank0204_pin_value(int pin,int value) { //tank0204引脚控制
for(int i = 0 ; i <= g_gpiocount ; i++) {
if(pin == g_gpiowpi[i]) {
break;
}if(i == g_gpiocount) {
return ;
}
}
if(value==1) {
digitalWrite(pin, HIGH);
}else if(value==0) {
digitalWrite(pin, LOW);
}
if(pin!=6)my_zlog_info("pin:%d,%d",pin,value);
else {
static int s_i=0;
s_i++;
if(s_i>10) {
my_zlog_info("pin:%d,%d",pin,value);
s_i=0;
}
}
}
/*
* @brief 小车pin控制
*/
......
......@@ -66,6 +66,13 @@ void pin_all_default() {//全部至低电平,车和坦克共用
}
}
void tank0204_pin_all_default() {//全部至低电平,坦克0204专用
for (int i=0;i<g_gpiocount;i++) {
if(g_gpiowpi[i]==16 || g_gpiowpi[i]==6) continue;
digitalWrite(g_gpiowpi[i], LOW);
}
}
void pwm_all_default() {//全部至低电平,车和坦克共用
for (int i=0;i<g_gpio_softpwmcount;i++) {
softPwmWrite(g_gpioPwm[i], 0);
......
......@@ -21,14 +21,12 @@ void init_gpiowpi(const int *values_pin);//gpio引脚初始化
void init_gpiopwm(const int *values_pwm);
void init_gpio_input(const int *values_pwm);//gpio读取
void pin_value(int pin,int value);//控制引脚高低
// 定义 PWM 引脚的 WiringPi 编号
void pin_all_default();//拉低车的控制引脚
void tank0204_pin_all_default();//拉低坦克专用的控制引脚
void pwm_all_default();//软件pwm置0引脚
void pin_value(int pin,int value);
void physics_pwm_init();
void pwm_value(int pin,int value); //软件陪我们控制调速
void tankpwm_default();//坦克专用pwm置0引脚
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment