241 lines
5.3 KiB
C
241 lines
5.3 KiB
C
![]() |
#include "./BSP/AD7606/ControlCommandReceive.h"
|
|||
|
#include "usbd_cdc_if.h"
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
typedef enum {
|
|||
|
HEARTBEAT_FRAME = 0,
|
|||
|
CONTROL_FRAME = 1
|
|||
|
} InstructionType;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
|||
|
typedef enum {
|
|||
|
FREQ_10KHZ = 1,
|
|||
|
FREQ_20KHZ = 2,
|
|||
|
FREQ_30KHZ = 3,
|
|||
|
FREQ_40KHZ = 4,
|
|||
|
FREQ_50KHZ = 5,
|
|||
|
FREQ_60KHZ = 6
|
|||
|
} SamplingFreq;
|
|||
|
|
|||
|
// ָ<><D6B8><EFBFBD>洢buf<75>ͱ<EFBFBD>־
|
|||
|
uint8_t Control_Buf[8] = {3}; // ָ<><D6B8><EFBFBD>洢buf
|
|||
|
uint8_t Control_Ins_Flag = 0; // ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD>־ 0<><30>δ<EFBFBD><CEB4><EFBFBD>գ<EFBFBD> 1<><31><EFBFBD>ѽ<EFBFBD><D1BD><EFBFBD>
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PWMƵ<4D><C6B5><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
|
|||
|
uint8_t sampling_control = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0: ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>; 1: <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|||
|
uint32_t ARR = 100; // <20><><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD>PWMƵ<4D><C6B5>
|
|||
|
uint32_t PCS = 14; // <20><><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD>PWMƵ<4D><C6B5>
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ洢<DAB4><E6B4A2><EFBFBD><EFBFBD> */
|
|||
|
uint8_t DataArray[16448]={0};
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// ָ<><D6B8><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>
|
|||
|
void Instruct_Judgment(void) {
|
|||
|
InstructionType instructionType = (Control_Buf[0] == 0x00 && Control_Buf[1] == 0x00 &&
|
|||
|
Control_Buf[2] == 0x00 && Control_Buf[3] == 0x00) ?
|
|||
|
HEARTBEAT_FRAME : CONTROL_FRAME;
|
|||
|
|
|||
|
switch (instructionType) {
|
|||
|
case HEARTBEAT_FRAME:
|
|||
|
// <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>루<EFBFBD><EBA3A8>ǰΪ<C7B0>գ<EFBFBD>
|
|||
|
break;
|
|||
|
|
|||
|
case CONTROL_FRAME:
|
|||
|
// <20><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
sampling_control = (Control_Buf[4] == 0 && Control_Buf[5] == 0) ? 0 : 1;
|
|||
|
|
|||
|
if (Control_Buf[6]==Control_Buf[7]){
|
|||
|
// <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ж<EFBFBD>
|
|||
|
switch ((SamplingFreq)(Control_Buf[6])) {
|
|||
|
case FREQ_10KHZ:
|
|||
|
ARR = 100;
|
|||
|
PCS = 84;
|
|||
|
break;
|
|||
|
case FREQ_20KHZ:
|
|||
|
ARR = 100;
|
|||
|
PCS = 42;
|
|||
|
break;
|
|||
|
case FREQ_30KHZ:
|
|||
|
ARR = 100;
|
|||
|
PCS = 28;
|
|||
|
break;
|
|||
|
case FREQ_40KHZ:
|
|||
|
ARR = 100;
|
|||
|
PCS = 21;
|
|||
|
break;
|
|||
|
case FREQ_50KHZ:
|
|||
|
ARR = 82;
|
|||
|
PCS = 21;
|
|||
|
break;
|
|||
|
case FREQ_60KHZ:
|
|||
|
ARR = 100;
|
|||
|
PCS = 14;
|
|||
|
break;
|
|||
|
default:
|
|||
|
// δ֪<CEB4><D6AA><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭֵ
|
|||
|
break;
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
default:
|
|||
|
// δָ֪<D6AA><D6B8><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/* <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ÿһ<C3BF><D2BB>ǰ4<C7B0><34><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>Ϊ<EFBFBD><CEAA>־֡ */
|
|||
|
void Data_to_ADbuf(void){
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=0000<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[4:1027]
|
|||
|
*/
|
|||
|
DataArray[1028*0 + 0] = 0x00;
|
|||
|
DataArray[1028*0 + 1] = 0x00;
|
|||
|
DataArray[1028*0 + 2] = 0x00;
|
|||
|
DataArray[1028*0 + 3] = 0x00;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=1111<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[1032:2055
|
|||
|
*/
|
|||
|
DataArray[1028*1 + 0] = 0x01;
|
|||
|
DataArray[1028*1 + 1] = 0x01;
|
|||
|
DataArray[1028*1 + 2] = 0x01;
|
|||
|
DataArray[1028*1 + 3] = 0x01;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=2222<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[2060:3083]
|
|||
|
*/
|
|||
|
DataArray[1028*2 + 0] = 0x02;
|
|||
|
DataArray[1028*2 + 1] = 0x02;
|
|||
|
DataArray[1028*2 + 2] = 0x02;
|
|||
|
DataArray[1028*2 + 3] = 0x02;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=3333<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[3088:4111]
|
|||
|
*/
|
|||
|
DataArray[1028*3 + 0] = 0x03;
|
|||
|
DataArray[1028*3 + 1] = 0x03;
|
|||
|
DataArray[1028*3 + 2] = 0x03;
|
|||
|
DataArray[1028*3 + 3] = 0x03;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=4444<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[4116:5139]
|
|||
|
*/
|
|||
|
DataArray[1028*4 + 0] = 0x04;
|
|||
|
DataArray[1028*4 + 1] = 0x04;
|
|||
|
DataArray[1028*4 + 2] = 0x04;
|
|||
|
DataArray[1028*4 + 3] = 0x04;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=5555<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[5144:6167]
|
|||
|
*/
|
|||
|
DataArray[1028*5 + 0] = 0x05;
|
|||
|
DataArray[1028*5 + 1] = 0x05;
|
|||
|
DataArray[1028*5 + 2] = 0x05;
|
|||
|
DataArray[1028*5 + 3] = 0x05;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=7777<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[6172:6173]
|
|||
|
*/
|
|||
|
DataArray[1028*6 + 0] = 0x06;
|
|||
|
DataArray[1028*6 + 1] = 0x06;
|
|||
|
DataArray[1028*6 + 2] = 0x06;
|
|||
|
DataArray[1028*6 + 3] = 0x06;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=8888<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>¶ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[7200:7206]<EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
DataArray[1028*7 + 0] = 0x07;
|
|||
|
DataArray[1028*7 + 1] = 0x07;
|
|||
|
DataArray[1028*7 + 2] = 0x07;
|
|||
|
DataArray[1028*7 + 3] = 0x07;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=0000<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[4:1027]
|
|||
|
*/
|
|||
|
DataArray[1028*8 + 0] = 0x00;
|
|||
|
DataArray[1028*8 + 1] = 0x00;
|
|||
|
DataArray[1028*8 + 2] = 0x00;
|
|||
|
DataArray[1028*8 + 3] = 0x00;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=1111<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[1032:2055
|
|||
|
*/
|
|||
|
DataArray[1028*9 + 0] = 0x01;
|
|||
|
DataArray[1028*9 + 1] = 0x01;
|
|||
|
DataArray[1028*9 + 2] = 0x01;
|
|||
|
DataArray[1028*9 + 3] = 0x01;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=2222<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[2060:3083]
|
|||
|
*/
|
|||
|
DataArray[1028*10 + 0] = 0x02;
|
|||
|
DataArray[1028*10 + 1] = 0x02;
|
|||
|
DataArray[1028*10 + 2] = 0x02;
|
|||
|
DataArray[1028*10 + 3] = 0x02;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=3333<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[3088:4111]
|
|||
|
*/
|
|||
|
DataArray[1028*11 + 0] = 0x03;
|
|||
|
DataArray[1028*11 + 1] = 0x03;
|
|||
|
DataArray[1028*11 + 2] = 0x03;
|
|||
|
DataArray[1028*11 + 3] = 0x03;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=4444<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[4116:5139]
|
|||
|
*/
|
|||
|
DataArray[1028*12 + 0] = 0x04;
|
|||
|
DataArray[1028*12 + 1] = 0x04;
|
|||
|
DataArray[1028*12 + 2] = 0x04;
|
|||
|
DataArray[1028*12 + 3] = 0x04;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=5555<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͨ<EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[5144:6167]
|
|||
|
*/
|
|||
|
DataArray[1028*13 + 0] = 0x05;
|
|||
|
DataArray[1028*13 + 1] = 0x05;
|
|||
|
DataArray[1028*13 + 2] = 0x05;
|
|||
|
DataArray[1028*13 + 3] = 0x05;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=6666<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[14396:6173]
|
|||
|
*/
|
|||
|
DataArray[1028*14 + 0] = 0x06;
|
|||
|
DataArray[1028*14 + 1] = 0x06;
|
|||
|
DataArray[1028*14 + 2] = 0x06;
|
|||
|
DataArray[1028*14 + 3] = 0x06;
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD>־λ=7777<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>¶ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡ͷ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>DataArray[15424:7206]<EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
DataArray[1028*15 + 0] = 0x07;
|
|||
|
DataArray[1028*15 + 1] = 0x07;
|
|||
|
DataArray[1028*15 + 2] = 0x07;
|
|||
|
DataArray[1028*15 + 3] = 0x07;
|
|||
|
|
|||
|
}
|