公式规范化

pid
Zeng wei (曾威) 2 years ago
parent 540d5de5d9
commit 801c188a5d

@ -31,6 +31,17 @@ void PID_Init()
pid.pwmcycle = 200; // pwm cycle 200
pid.OUT0 = 1;
pid.C1ms = 0;
pid.hp = 2.4;
pid.hi = 0.02;
pid.hd = 0;
pid.cp = 9.6;
pid.ci = 0;
pid.cd = 0;
pid.h_percent = 0;
pid.c_speed = 0;
}
/**
@ -125,9 +136,6 @@ void PID_Calc() // pid calc
{
int min_speed_count = 1800;
int max_speed_count = 4800;
float pid_hp = 2.4;
float pid_cp = 9.6;
float pid_hi = 0.08;
int p_hb = 52;
int p_cb = 33;
float DelEk; // The difference between the last two deviations
@ -141,8 +149,8 @@ void PID_Calc() // pid calc
float delta_t = pid.set_tem - pid.now_tem;
int p_c = calc_cp(delta_t, p_cb, pid_cp);
int speed_count = calc_compressor_speed(p_c, min_speed_count, max_speed_count);
int p_c = calc_cp(delta_t, p_cb, pid.cp);
pid.c_speed = calc_compressor_speed(p_c, min_speed_count, max_speed_count);
pid.Ek = pid.set_tem - pid.now_tem;
pid.Pout = pid.Kp * pid.Ek; // Proportional output
@ -150,17 +158,17 @@ void PID_Calc() // pid calc
pid.SEk += pid.Ek; // Total historical deviation
// SEk limit, updated func
if (pid.SEk < - p_hb / pid_hi) {
pid.SEk = - p_hb / pid_hi;
if (pid.SEk < - p_hb / pid.hi) {
pid.SEk = - p_hb / pid.hi;
}
if (speed_count == max_speed_count) {
if (pid.c_speed == max_speed_count) {
pid.SEk = 0;
}
float Error_calc = pid.SEk;
if (Error_calc < - (p_hb + pid_hp * delta_t) / pid_hi) {
Error_calc = - (p_hb + pid_hp * delta_t) / pid_hi;
if (Error_calc < - (p_hb + pid.hp * delta_t) / pid.hi) {
Error_calc = - (p_hb + pid.hp * delta_t) / pid.hi;
}
if (speed_count == max_speed_count) {
if (pid.c_speed == max_speed_count) {
Error_calc = 0;
}
@ -199,17 +207,13 @@ void PID_Calc() // pid calc
pid.C1ms = 0;
// heater percent
int heater_percent = calc_hp(delta_t, Error_calc, p_hb, pid_hp, pid_hi);
pid.h_percent = calc_hp(delta_t, Error_calc, p_hb, pid.hp, pid.hi);
// close heater when compressor is running in full state
if (speed_count == max_speed_count) {
heater_percent = 0;
if (pid.c_speed == max_speed_count) {
pid.h_percent = 0;
}
// TODO:: temply, set Ki to speed count, Kd to heater_percent, use for data upload
pid.Ki = speed_count;
pid.Kd = heater_percent;
set_compressor_power(speed_count);
set_heater_power(heater_percent);
set_compressor_power(pid.c_speed);
set_heater_power(pid.h_percent);
}

@ -10,6 +10,15 @@ typedef struct Pid
{
float set_tem;// User settings
float now_tem;// current temperature
float hp;
float hi;
float hd;
int h_percent;
float cp;
float ci;
float cd;
int c_speed;
float Kp; // 110
float Ki; // 0.001

@ -4,10 +4,10 @@
#include "Relays.h"
#include "myfreertos.h"
u8 prev_sendbuf[41] = {0xEE, 0xB5, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0xFF, 0xFF};
u8 sendbuf[41] = {0xEE, 0xB5, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0xFF, 0xFF};
u8 prev_sendbuf[49] = {0xEE, 0xB5, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0xFF, 0xFF};
u8 sendbuf[49] = {0xEE, 0xB5, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0xFF, 0xFF};
u8 sendbuf_crc[20] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
extern u8 global_buffer[64];
@ -384,10 +384,10 @@ void RS485_1_Send_Data_2(void)
sendbuf[1] = 0xB5;
sendbuf[2] = 0x05;
sendbuf[37] = 0xFF;
sendbuf[38] = 0xFC;
sendbuf[39] = 0xFF;
sendbuf[40] = 0xFF;
sendbuf[45] = 0xFF;
sendbuf[46] = 0xFC;
sendbuf[47] = 0xFF;
sendbuf[48] = 0xFF;
// u8 a;
if (T <= 1000 && T >= -1000)
{
@ -430,87 +430,60 @@ void RS485_1_Send_Data_2(void)
sendbuf[10] = blue_light2;
sendbuf[11] = white_light1;
sendbuf[12] = white_light2;
if (C <= 5000)
{
CO2_1 = (C & 0xFF00) >> 8;
CO2_1 = C & 0x00FF;
}
sendbuf[13] = CO2_1;
sendbuf[14] = CO2_2;
if (now_stage > 0 && now_stage < 7 && total[3 + 18 * (now_stage - 1)] < 24 && total[4 + 18 * (now_stage - 1)] < 60 && chour < 24 && cminute < 60)
{
sendbuf[15] = now_stage; // current state
sendbuf[16] = total[3 + 18 * (now_stage - 1)]; // stage hour
sendbuf[17] = total[4 + 18 * (now_stage - 1)]; // stage minute
sendbuf[18] = chour; // run hour
sendbuf[19] = cminute; // run minute
}
// now_stage = 1;
sendbuf[15] = now_stage; // current state
sendbuf[16] = total[3 + 18 * (now_stage - 1)]; // stage hour
sendbuf[17] = total[4 + 18 * (now_stage - 1)]; // stage minute
sendbuf[18] = chour; // run hour
sendbuf[19] = cminute; // run minute
sendbuf[20] = hot_clod_flag; // hot clod state
sendbuf[21] = humidity_flag; // humidity state
sendbuf[22] = ALARM; // ALARM state
// sendbuf[23] = (int)pid.Kp / 256; // Kp 110
// sendbuf[24] = (int)pid.Kp % 256; // Kp 110
// sendbuf[25] = ((int)(pid.Ki * 100000)) / 256; // Ti 0.001
// sendbuf[26] = ((int)(pid.Ki * 100000)) % 256; // Ti 0.001
// sendbuf[27] = (int)pid.Kd / 256; // Td 340
// sendbuf[28] = (int)pid.Kd % 256; // Td 340
// TODO::temp
sendbuf[23] = (int)(-pid.SEk) / 256; // SEk
sendbuf[24] = (int)(-pid.SEk) % 256;
sendbuf[25] = (int)pid.Ki / 256; // compressor speed
sendbuf[26] = (int)pid.Ki % 256;
sendbuf[27] = (int)pid.Kd / 256; // heater percent
sendbuf[28] = (int)pid.Kd % 256;
// num = (((pid.OUT * 350) / pid.pwmcycle) - 1);
int out1 = pid.OUT;
// speed count
int speed_count = out1 / 200.0 * (6000 - 1500) + 1500;
if (speed_count > 6000)
{
speed_count = 6000;
}
sendbuf[29] = (speed_count) / 256;
sendbuf[30] = (speed_count) % 256;
// sendbuf[29] = ((int)(pid.OUT * 1000)) / 256;
// sendbuf[30] = ((int)(pid.OUT * 1000)) % 256;
// if (C <= 5000)
// {
// CO2_1 = (C & 0xFF00) >> 8;
// CO2_1 = C & 0x00FF;
// }
sendbuf[13] = (C & 0xFF00) >> 8;
sendbuf[14] = C & 0x00FF;
sendbuf[15] = 0; // current state
sendbuf[16] = now_stage; // current state
sendbuf[17] = total[3 + 18 * (now_stage - 1)]; // stage hour
sendbuf[18] = total[4 + 18 * (now_stage - 1)]; // stage minute
sendbuf[19] = chour; // run hour
sendbuf[20] = cminute; // run minute
sendbuf[21] = 0; // hot clod state
sendbuf[22] = hot_clod_flag; // hot clod state
sendbuf[23] = 0; // humidity state
sendbuf[24] = humidity_flag; // humidity state
sendbuf[25] = 0; // ALARM state
sendbuf[26] = ALARM; // ALARM state
sendbuf[27] = (int)pid.hp / 256; // Kp 110
sendbuf[28] = (int)pid.hp % 256; // Kp 110
sendbuf[29] = ((int)(pid.hi * 100000)) / 256; // Ti 0.001
sendbuf[30] = ((int)(pid.hi * 100000)) % 256; // Ti 0.001
sendbuf[31] = (int)pid.hd / 256; // Td 340
sendbuf[32] = (int)pid.hd % 256; // Td 340
sendbuf[33] = pid.h_percent / 256; // h_percent
sendbuf[34] = pid.h_percent % 256; // h_percent
sendbuf[35] = (int)pid.cp / 256; // Kp 110
sendbuf[36] = (int)pid.cp % 256; // Kp 110
sendbuf[37] = ((int)(pid.ci * 100000)) / 256; // Ti 0.001
sendbuf[38] = ((int)(pid.ci * 100000)) % 256; // Ti 0.001
sendbuf[39] = (int)pid.cd / 256; // Td 340
sendbuf[40] = (int)pid.cd % 256; // Td 340
sendbuf[41] = pid.c_speed / 256; // h_percent
sendbuf[42] = pid.c_speed % 256; // h_percent
// bufcut_Init(sendbuf_crc, sendbuf, 3, 31);
// GetCRC16(sendbuf_crc, 28, &crc_num1, &crc_num2);
int tem_offset_10times = (int)(pid.tem_offset * 10);
if (tem_offset_10times < 0) {
tem_offset_10times = (~(tem_offset_10times - 1)) & 0xFFFF;
}
sendbuf[31] = tem_offset_10times / 256; // tem offset
sendbuf[32] = tem_offset_10times % 256;
sendbuf[33] = ((int)(pid.tem_threshold * 10)) / 256; // tem threshold
sendbuf[34] = ((int)(pid.tem_threshold * 10)) % 256;
GetCRC16(sendbuf, 35, &crc_num1, &crc_num2);
sendbuf[35] = crc_num1;
sendbuf[36] = crc_num2;
GetCRC16(sendbuf, 43, &crc_num1, &crc_num2);
sendbuf[43] = crc_num1;
sendbuf[44] = crc_num2;
// u8 tmpabc[] = {0xAA, 0xBB, 0xCC};
// RS485_1_Send_Data(tmpabc, 3);
// only when modify happen, then send
if (cmp_str(prev_sendbuf, sendbuf, 41) != 0) {
if (cmp_str(prev_sendbuf, sendbuf, 49) != 0) {
RS485_1_Send_Data(sendbuf, 41);
RS485_1_Send_Data(sendbuf, 49);
cp_str_to_prev(prev_sendbuf, sendbuf, 41);
cp_str_to_prev(prev_sendbuf, sendbuf, 49);
}
}

@ -95,7 +95,7 @@
<RegID>0</RegID>
<MDITabState>
<Len>1454</Len>
<Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000B00000002000000010000005E453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C6D796672656572746F735C6D796672656572746F732E63000000000C6D796672656572746F732E6300000000FFDC7800FFFFFFFF52453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C555345525C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF55453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C5049442E6300000000055049442E6300000000F0A0A100FFFFFFFF55453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C5049442E6800000000055049442E6800000000BCA8E100FFFFFFFF58453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C52656C6179732E63000000000852656C6179732E63000000009CC1B600FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C555345525C73746D3332663130782E68000000000B73746D3332663130782E6800000000F7B88600FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C72733438352E63000000000772733438352E6300000000D9ADC200FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C77726974652E63000000000777726974652E6300000000A5C2D700FFFFFFFF6A453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C53544D3332463130785F46574C69625C7372635C73746D3332663130785F74696D2E63000000000F73746D3332663130785F74696D2E6300000000B3A6BE00FFFFFFFF59453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C573235513132382E630000000009573235513132382E6300000000EAD6A300FFFFFFFF62453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C555345525C6275696C645C4B65696C5C636F6E74726F6C2E6D6170000000000B636F6E74726F6C2E6D617000000000F6FA7D00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000010030000</Data>
<Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000B00000002000000010000005E453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C6D796672656572746F735C6D796672656572746F732E63000000000C6D796672656572746F732E6300000000C5D4F200FFFFFFFF52453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C555345525C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF55453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C5049442E6300000000055049442E6300000000BECEA100FFFFFFFF55453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C5049442E6800000000055049442E6800000000F0A0A100FFFFFFFF58453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C52656C6179732E63000000000852656C6179732E6300000000BCA8E100FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C555345525C73746D3332663130782E68000000000B73746D3332663130782E68000000009CC1B600FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C72733438352E63000000000772733438352E6300000000F7B88600FFFFFFFF57453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C77726974652E63000000000777726974652E6300000000D9ADC200FFFFFFFF6A453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C53544D3332463130785F46574C69625C7372635C73746D3332663130785F74696D2E63000000000F73746D3332663130785F74696D2E6300000000A5C2D700FFFFFFFF59453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C48415244574152455C573235513132382E630000000009573235513132382E6300000000B3A6BE00FFFFFFFF62453A5CD6C7C4DCC5A9D2B520D6C7C4DCBBB7BEB3C6F8BAF2CFE45CD6C7C4DCC6F8BAF2C5E0D1F8CFE45CD6F7BFD8B0E55CB4FAC2EB5C636F6E74726F6C5F6672656572746F735C555345525C6275696C645C4B65696C5C636F6E74726F6C2E6D6170000000000B636F6E74726F6C2E6D617000000000EAD6A300FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000010030000</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
@ -1722,7 +1722,7 @@
<Name>Debug</Name>
<Buttons>
<Len>2373</Len>
<Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
<Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
</Buttons>
<OriginalItems>
<Len>898</Len>
@ -1767,16 +1767,16 @@
</Doc>
<Doc>
<Name>../HARDWARE/PID.c</Name>
<ColumnNumber>0</ColumnNumber>
<ColumnNumber>17</ColumnNumber>
<TopLine>115</TopLine>
<CurrentLine>141</CurrentLine>
<CurrentLine>130</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</Doc>
<Doc>
<Name>../HARDWARE/PID.h</Name>
<ColumnNumber>7</ColumnNumber>
<ColumnNumber>8</ColumnNumber>
<TopLine>5</TopLine>
<CurrentLine>17</CurrentLine>
<Folding>1</Folding>

@ -118,7 +118,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U16004A002933353739303541 -O239 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)</Name>
<Name>-U16004A002933353739303541 -O239 -S0 -C0 -A0 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>

@ -28,7 +28,7 @@ int main(void)
PWM3_Init(500 - 1, 720 - 1);
TIM4_Init(10000 - 1, 7200 - 1); // 1s计数溢出更新中断10000*7200/72M=1s,内含喂狗程序
iwdg_my_Init(5, 16000); // 不喂狗12s复位
// RX_BUF_Init();
RX_BUF_Init();
// GPIO_ResetBits(GPIOB,GPIO_Pin_0);
// 红白蓝对应J10 J11 J12

Loading…
Cancel
Save