Commit 05c82e63 authored by 957dd's avatar 957dd

更新坦克的代码,坦克和车分离2个逻辑,使用第3和4位判断

parent b0bd60e0
......@@ -20,7 +20,7 @@ extern int gPwmCount; // 计数
extern int gmessage_type;
extern int gmessage_4_index;
extern int gmessage_2_index;
int mqtt_init();
void mqtt_create(struct mosquitto *mosq);
......
[10315:10353:0317/095131.251085:ERROR:ssl_client_socket_impl.cc(985)] handshake failed; returned -1, SSL error code 1, net_error -101
No preview for this file type
#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>
#include "gpio_pwm.h"
// 定义 PWM 引脚的 WiringPi 编号
#define PWM_PIN_SPEED 21
#define PWM_PIN_CHANGE 2
// 定义 PWM 频率为 50Hz
#define PWM_FREQ 50
// 定义占空比范围,这里设置为 0 到 1000
#define MAX_DUTY 1000
const int gpioWPi[] = {5, 6, 7, 10, 16, 20, 22, 23, 24, 25, 26, 27};
void pin_init()//初始化引脚
......@@ -35,14 +31,7 @@ void pin_all_default()//全部至低电平
void pin_value(int pin,int value)
{
if(pin==2){
pinMode(pin, OUTPUT);
}if(pin==21){
pinMode(pin, OUTPUT);
}
if(value==1){
digitalWrite(pin, HIGH);
printf("pin:%d,%d\n",pin,HIGH);
......@@ -55,21 +44,21 @@ void pin_value(int pin,int value)
void pwm_speed() {
int pwm_clock = 24000000 / (PWM_FREQ * 1000);
int pwm_clock = 24000000 / (50 * 1000);// 定义 PWM 频率为 50Hz
pinMode(PWM_PIN_SPEED,PWM_OUTPUT);
pinMode(PWM_PIN_CHANGE,PWM_OUTPUT);
pwmSetClock(PWM_PIN_SPEED,pwm_clock);//=19200*1000/(hz*2000)
pwmSetRange(PWM_PIN_SPEED,MAX_DUTY);
pwmSetRange(PWM_PIN_SPEED,1000);//占空比范围
pwmSetClock(PWM_PIN_CHANGE,pwm_clock);//=19200*1000/(hz*2000)
pwmSetRange(PWM_PIN_CHANGE,MAX_DUTY);
pwmSetRange(PWM_PIN_CHANGE,1000);//占空比范围
pwmWrite(PWM_PIN_SPEED,75);
pwmWrite(PWM_PIN_CHANGE,70);
}
void midde_pwm()
void midde_pwm()//中间pwm值
{
pwmWrite(PWM_PIN_SPEED,75);
pwmWrite(PWM_PIN_CHANGE,70);
......
No preview for this file type
......@@ -33,7 +33,7 @@ unsigned char gvalt[4];//存放mqtt接收的tpye,mode等
struct mosquitto *mosq;
time_t gStart;
int gmessage_4_index=0;
int gmessage_2_index=0;
char *glat=NULL;//加入gps后删除,心跳预留,不更改
......@@ -205,12 +205,12 @@ void on_message(struct mosquitto *mosq, void *obj, const struct mosquitto_messag
switch(gmessage_type)
{
case 2:
if(gmessage_4_index<=50)
if(gmessage_2_index<=50)
{
free(payload_str);
return ;
}
gmessage_4_index=0;
gmessage_2_index=0;
refresh_cam();
break;
case 3:
......
No preview for this file type
......@@ -22,6 +22,7 @@
#include "opensh.h"
char buffer[30]; // 用于存储文件内容
uint8_t AppExit_pin_pwm=0;//判断坦克或者车的退出
void *AppExit(void *arg)//出现意外自动停止
{
......@@ -30,16 +31,27 @@ void *AppExit(void *arg)//出现意外自动停止
{
Delay_Ms(0,100);
gPwmCount++;
gmessage_4_index++;
gmessage_2_index++;
if(gPwmCount>=5)
{
midde_pwm();
gPwmCount=6;
pin_all_default();
if(AppExit_pin_pwm==1)//车异常问题处理
{
midde_pwm();
pin_all_default();
}
if(AppExit_pin_pwm==2)//坦克异常问题处理
{
midde_pwm();
pin_all_default();
digitalWrite(2, LOW);
digitalWrite(21, LOW);
}
gPwmCount=6;
}
if(gmessage_4_index>=150)//计时15s,15s才能远程刷新一次
if(gmessage_2_index>=150)//计时15s,15s才能远程刷新一次
{
gmessage_4_index=160;
gmessage_2_index=160;
}
}
......@@ -50,7 +62,6 @@ void *AppExit(void *arg)//出现意外自动停止
void *Mqttbeat(void *arg)
{
printf("Mqttbeat start\n");
//Delay_Ms(15,0);
//refresh_cam();//刷新cam
Delay_Ms(15,0);
......@@ -123,19 +134,34 @@ int main(int argc, char *argv[]) {
printf("WiringPi setup failed!\n");
return 1;
}
pin_init();
pwm_speed(); //pwm初始化,车为停止
Delay_Ms(20,0);
const char *readbuf=device_inspect();
//将第3个和第4个字符提取出来
char *sub_str=malloc(3);
sub_str[0]=readbuf[2];
sub_str[1]=readbuf[3];
sub_str[2]='\0';
printf("开始初始化了");
if(strcmp(sub_str,"02")==0){//坦克的编码
pin_init();
pinMode(2, OUTPUT);
pinMode(21, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(21, LOW);
AppExit_pin_pwm=1;//坦克的异常停止值
free(sub_str);
}else if(strcmp(sub_str,"01")==0){//车的编码
pwm_speed(); //pwm初始化,车为停止
pin_init();
AppExit_pin_pwm=2;//车的异常停止值
free(sub_str);
}
Delay_Ms(20,0);
TOPIC=malloc(24);
TOPIC2=malloc(24);
TOPIC3= malloc(16);
//TOPIC3=device_inspect();//读取文件内容
//sprintf(TOPIC3,"%s",buffer);
//strcpy(TOPIC3,device_inspect());
sprintf(TOPIC2,"dev2app/%s",readbuf);
sprintf(TOPIC,"app2dev/%s",readbuf);
sprintf(TOPIC3,"%s",readbuf);
......
No preview for this file type
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