107 lines
2.2 KiB
C
107 lines
2.2 KiB
C
#include "VM_Sampling_Control.h"
|
||
#include "VM_AD7606.h"
|
||
#include "usbd_cdc_if.h"
|
||
|
||
uint8_t Control_Buf[8] = {3}; //指令存储buf
|
||
uint8_t Control_Ins_Flag = 0; //指令接收标志 0:未接收; 1:已接收
|
||
uint8_t instruct_flag = 0; //指令判断标志符
|
||
|
||
//各指令控制器
|
||
uint8_t frequency_control = 3; //频率控制器 2 : 10k ; 1 : 20k ; 0 : 40k
|
||
uint8_t sampling_control = 2; //采样控制器 0 : 停止采样 ; 1 : 开始采样
|
||
uint8_t reset_control = 0; //软件复位控制器 1 : 执行复位
|
||
uint8_t hall_control = 2; //霍尔传感器频率检测控制器 0 : 停止检测 ; 1 : 开始检测
|
||
|
||
//采集指令控制
|
||
void Sampling_Control(void){
|
||
|
||
//采样频率设置
|
||
switch (frequency_control){
|
||
case 0:
|
||
AD7606_SFC = 1; //40k
|
||
break;
|
||
case 1:
|
||
AD7606_SFC = 2; //20k
|
||
break;
|
||
case 2:
|
||
AD7606_SFC = 4; //10k
|
||
break;
|
||
default :
|
||
break;
|
||
}
|
||
|
||
if(sampling_control == 1){ //开始采样
|
||
AD7606_Sampling_Flag = 1;
|
||
}
|
||
else if(sampling_control == 0){ //停止采样
|
||
AD7606_Sampling_Flag = 0;
|
||
}
|
||
|
||
//软件复位
|
||
if(reset_control == 1){
|
||
__set_FAULTMASK(1); //关闭中断
|
||
NVIC_SystemReset(); //复位
|
||
}
|
||
|
||
//霍尔频率检测 暂定
|
||
if(hall_control == 1){
|
||
|
||
}
|
||
//AD电流检测 暂定
|
||
|
||
}
|
||
|
||
//采样数据发送
|
||
void CDC_Data_Send(void){
|
||
if(AD_Arr_Num == 1028){
|
||
CDC_Transmit_HS(AD_Data_Arr,8224);
|
||
AD_Arr_Num = 8228;
|
||
}
|
||
if(AD_Arr_Num == 9252){
|
||
CDC_Transmit_HS(&AD_Data_Arr[8224],8224);
|
||
AD_Arr_Num = 4;
|
||
}
|
||
}
|
||
|
||
|
||
//指令判断
|
||
void Instruct_Judgment(void){
|
||
// if(Control_Ins_Flag == 1)
|
||
// {
|
||
//心跳判断
|
||
if(Control_Buf[0] == 0x00 && Control_Buf[1] == 0x00 && Control_Buf[2] == 0x00 && Control_Buf[3] == 0x00)
|
||
{
|
||
|
||
}
|
||
//指令判断
|
||
else if(Control_Buf[0] == 0x01 && Control_Buf[1] == 0x01 && Control_Buf[2] == 0x01 && Control_Buf[3] == 0x01)
|
||
{
|
||
//开始/停止 采样
|
||
if(Control_Buf[4] == 0 && Control_Buf[5] == 0)
|
||
{
|
||
sampling_control = 0;
|
||
}
|
||
else if(Control_Buf[4] == 1 && Control_Buf[5] == 1)
|
||
{
|
||
sampling_control = 1;
|
||
}
|
||
//设置采样频率
|
||
if(Control_Buf[6] == 0 && Control_Buf[7] == 0)
|
||
{
|
||
frequency_control = 0;
|
||
}
|
||
else if(Control_Buf[6] == 1 && Control_Buf[7] == 1)
|
||
{
|
||
frequency_control = 1;
|
||
}
|
||
else if(Control_Buf[6] == 2 && Control_Buf[7] == 2)
|
||
{
|
||
frequency_control = 2;
|
||
}
|
||
}
|
||
// Control_Ins_Flag = 0;
|
||
// }
|
||
}
|
||
|
||
|