Refactor(#7): remove TRC
https://www.notion.so/439a3c3a2694457ebb9233903291d6cd?v=6f499c754ed34fc09ee1d8d7590f8478&p=c382a9f88a444185873dbb62a7deee1a&pm=s
This commit is contained in:
+2
-2
@@ -4,6 +4,6 @@
|
||||
#define VERSION_DATE_YEAR 23
|
||||
#define VERSION_DATE_MONTH 6
|
||||
#define VERSION_DATE_DAY 5
|
||||
#define VERSION_DATE_HOUR 14
|
||||
#define VERSION_DATE_MINUTE 47
|
||||
#define VERSION_DATE_HOUR 16
|
||||
#define VERSION_DATE_MINUTE 26
|
||||
#endif
|
||||
|
||||
+2
-9
@@ -31,12 +31,9 @@ static void update_led(uint8_t led);
|
||||
#define TRI_D0_5V 8
|
||||
#define TRI_D1_5V 9
|
||||
#define TRIG_OUT_CH_MAX 10
|
||||
|
||||
struct trig_ch_en_ctx_t
|
||||
{ // Trigger Channel
|
||||
bool chan_en[TRIG_OUT_CH_MAX]; // [tri_pr0_en, tri_d0_en, tri_a0_en, tri_a2_en, tri_a3_en,
|
||||
bool chan_en[TRIG_OUT_CH_MAX]; // [tri_pr0_en, tri_d0_en, tri_a0_en, tri_a2_en, tri_a3_en,
|
||||
// tri_a1_en, tri_d1_en, tri_pr1_en, tri_d0_as_5v_en, tri_d1_as_5v_en]
|
||||
};
|
||||
|
||||
|
||||
/** TRIG01 trigger edge type **/
|
||||
#define TRIG_POSEDGE 0x00
|
||||
@@ -93,9 +90,6 @@ struct trig_ch_en_ctx_t
|
||||
#define TRIG_input 0x04
|
||||
// #define TRIG_CHAN_COUNT 10 // channel count of TRIG01
|
||||
|
||||
/* application use SPI parameters and buffers */
|
||||
#define SPI_GPIO_BUFF_SIZE 10
|
||||
|
||||
struct elite_instru_t
|
||||
{
|
||||
uint8_t memoryboard_id;
|
||||
@@ -199,7 +193,6 @@ enum set_para_e
|
||||
};
|
||||
|
||||
struct _LH LH = { 0 };
|
||||
struct trig_ch_en_ctx_t TRC = { 0 };
|
||||
struct elite_instru_t instru = { 0 };
|
||||
struct gptimer_t gpt = {0};
|
||||
static int32_t notify_ch1 = 0;
|
||||
|
||||
+44
-46
@@ -89,7 +89,7 @@ static void WorkModeLED()
|
||||
{
|
||||
case MODE_ANALOG_CURRENT_CTRL:
|
||||
case MODE_ALL_OUTPUT_CTRL:
|
||||
set_channel_led(TRC.chan_en);
|
||||
set_channel_led(chan_en);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -524,22 +524,18 @@ static void receive_instruction(uint8 *ins)
|
||||
break;
|
||||
}
|
||||
|
||||
case SET_EN_CHAN: { // 0x81 //Trig mode use
|
||||
case SET_EN_CHAN: { // 0x81 //ACC mode use
|
||||
InitTrigChan();
|
||||
switch (ins[3])
|
||||
{
|
||||
case TRIG_PR: { // 0x00
|
||||
instru.tri_pr0_en = (bool)(ins[4] >> 4);
|
||||
instru.tri_pr1_en = (bool)(ins[4] & 0x0F);
|
||||
TRC.chan_en[0] = instru.tri_pr0_en;
|
||||
TRC.chan_en[7] = instru.tri_pr1_en;
|
||||
chan_en[TRI_PR0] = (bool)(ins[4] >> 4);
|
||||
chan_en[TRI_PR1] = (bool)(ins[4] & 0x0F);
|
||||
break;
|
||||
}
|
||||
case TRIG_MOS_DOUT: { // 0x01
|
||||
instru.tri_d0_en = (bool)(ins[4] >> 4);
|
||||
instru.tri_d1_en = (bool)(ins[4] & 0x0F);
|
||||
TRC.chan_en[1] = instru.tri_d0_en;
|
||||
TRC.chan_en[6] = instru.tri_d1_en;
|
||||
chan_en[TRI_D0_SW] = (bool)(ins[4] >> 4);
|
||||
chan_en[TRI_D1_SW] = (bool)(ins[4] & 0x0F);
|
||||
break;
|
||||
}
|
||||
case TRIG_MOS_AOUT: { // 0x02
|
||||
@@ -547,17 +543,17 @@ static void receive_instruction(uint8 *ins)
|
||||
instru.tri_a1_en = (bool)(ins[4] & 0x0F);
|
||||
instru.tri_a2_en = (bool)(ins[5] >> 4);
|
||||
instru.tri_a3_en = (bool)(ins[5] & 0x0F);
|
||||
TRC.chan_en[2] = instru.tri_a0_en;
|
||||
TRC.chan_en[3] = instru.tri_a2_en;
|
||||
TRC.chan_en[4] = instru.tri_a3_en;
|
||||
TRC.chan_en[5] = instru.tri_a1_en;
|
||||
chan_en[2] = instru.tri_a0_en;
|
||||
chan_en[3] = instru.tri_a2_en;
|
||||
chan_en[4] = instru.tri_a3_en;
|
||||
chan_en[5] = instru.tri_a1_en;
|
||||
break;
|
||||
}
|
||||
case TRIG_5V_OUT: { // 0x03
|
||||
instru.tri_d0_as_5v_en = (bool)(ins[4] >> 4);
|
||||
instru.tri_d1_as_5v_en = (bool)(ins[4] & 0x0F);
|
||||
TRC.chan_en[8] = instru.tri_d0_as_5v_en;
|
||||
TRC.chan_en[9] = instru.tri_d1_as_5v_en;
|
||||
chan_en[8] = instru.tri_d0_as_5v_en;
|
||||
chan_en[9] = instru.tri_d1_as_5v_en;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
@@ -577,7 +573,7 @@ static void receive_instruction(uint8 *ins)
|
||||
break;
|
||||
}
|
||||
|
||||
case SET_TRIG_EN: { // 0x41 //Trig mode use
|
||||
case SET_TRIG_EN: { // 0x41 //ACC mode use
|
||||
instru.trig0_en = (bool)(ins[3] >> 4);
|
||||
instru.trig1_en = (bool)(ins[3] & 0x0F);
|
||||
instru.trig0_edge = (uint8_t)(ins[4] >> 4); // 0: POS, 1: NEG, 2: BOTH, 3: DIS
|
||||
@@ -596,7 +592,7 @@ static void receive_instruction(uint8 *ins)
|
||||
break;
|
||||
}
|
||||
|
||||
case MODE_ANALOG_CURRENT_CTRL: { // Trig mode use
|
||||
case MODE_ANALOG_CURRENT_CTRL: { // ACC mode use
|
||||
uint16_t a_out0_current = (uint16_t)ins[3] << 8 | (uint16_t)ins[4];
|
||||
uint16_t a_out1_current = (uint16_t)ins[5] << 8 | (uint16_t)ins[6];
|
||||
uint16_t a_out2_current = (uint16_t)ins[7] << 8 | (uint16_t)ins[8];
|
||||
@@ -642,32 +638,32 @@ static void receive_instruction(uint8 *ins)
|
||||
case Aout_CH_0:
|
||||
set_para(instru.elite_mode, Aout_CH_0, value);
|
||||
instru.tri_a0_en = chan;
|
||||
TRC.chan_en[2] = instru.tri_a0_en;
|
||||
set_output_enable(TRC.chan_en);
|
||||
chan_en[2] = instru.tri_a0_en;
|
||||
set_output_enable(chan_en);
|
||||
update_led(LED_WORKING);
|
||||
break;
|
||||
|
||||
case Aout_CH_1:
|
||||
set_para(instru.elite_mode, Aout_CH_1, value);
|
||||
instru.tri_a1_en = chan;
|
||||
TRC.chan_en[5] = instru.tri_a1_en;
|
||||
set_output_enable(TRC.chan_en);
|
||||
chan_en[5] = instru.tri_a1_en;
|
||||
set_output_enable(chan_en);
|
||||
update_led(LED_WORKING);
|
||||
break;
|
||||
|
||||
case Aout_CH_2:
|
||||
set_para(instru.elite_mode, Aout_CH_2, value);
|
||||
instru.tri_a2_en = chan;
|
||||
TRC.chan_en[3] = instru.tri_a2_en;
|
||||
set_output_enable(TRC.chan_en);
|
||||
chan_en[3] = instru.tri_a2_en;
|
||||
set_output_enable(chan_en);
|
||||
update_led(LED_WORKING);
|
||||
break;
|
||||
|
||||
case Aout_CH_3:
|
||||
set_para(instru.elite_mode, Aout_CH_3, value);
|
||||
instru.tri_a3_en = chan;
|
||||
TRC.chan_en[4] = instru.tri_a3_en;
|
||||
set_output_enable(TRC.chan_en);
|
||||
chan_en[4] = instru.tri_a3_en;
|
||||
set_output_enable(chan_en);
|
||||
update_led(LED_WORKING);
|
||||
break;
|
||||
|
||||
@@ -772,7 +768,7 @@ static void receive_instruction(uint8 *ins)
|
||||
|
||||
if (!TRIG_TrigEnable)
|
||||
{
|
||||
set_output_enable(TRC.chan_en);
|
||||
set_output_enable(chan_en);
|
||||
}
|
||||
update_led(LED_WORKING);
|
||||
break;
|
||||
@@ -913,18 +909,18 @@ static void receive_instruction(uint8 *ins)
|
||||
case 0x31: { // 0x31 ctrl PR0
|
||||
//PIN15_setOutputValue(E_PIN_D0_PR_0, ?);
|
||||
instru.tri_pr0_en = ins[4];
|
||||
TRC.chan_en[0] = instru.tri_pr0_en;
|
||||
set_output_enable(TRC.chan_en);
|
||||
set_channel_led(TRC.chan_en);
|
||||
chan_en[0] = instru.tri_pr0_en;
|
||||
set_output_enable(chan_en);
|
||||
set_channel_led(chan_en);
|
||||
break;
|
||||
}
|
||||
|
||||
case 0x32: { // 0x32 ctrl PR1
|
||||
//PIN15_setOutputValue(E_PIN_D0_PR_1, ?);
|
||||
instru.tri_pr1_en = ins[4];
|
||||
TRC.chan_en[7] = instru.tri_pr1_en;
|
||||
set_output_enable(TRC.chan_en);
|
||||
set_channel_led(TRC.chan_en);
|
||||
chan_en[7] = instru.tri_pr1_en;
|
||||
set_output_enable(chan_en);
|
||||
set_channel_led(chan_en);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -944,10 +940,10 @@ static void receive_instruction(uint8 *ins)
|
||||
instru.tri_d0_en = 1;
|
||||
break;
|
||||
}
|
||||
TRC.chan_en[8] = instru.tri_d0_as_5v_en;
|
||||
TRC.chan_en[1] = instru.tri_d0_en;
|
||||
set_output_enable(TRC.chan_en);
|
||||
set_channel_led(TRC.chan_en);
|
||||
chan_en[8] = instru.tri_d0_as_5v_en;
|
||||
chan_en[1] = instru.tri_d0_en;
|
||||
set_output_enable(chan_en);
|
||||
set_channel_led(chan_en);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -967,11 +963,11 @@ static void receive_instruction(uint8 *ins)
|
||||
instru.tri_d1_en = 1;
|
||||
break;
|
||||
}
|
||||
TRC.chan_en[9] = instru.tri_d1_as_5v_en;
|
||||
TRC.chan_en[6] = instru.tri_d1_en;
|
||||
set_output_enable(TRC.chan_en);
|
||||
chan_en[9] = instru.tri_d1_as_5v_en;
|
||||
chan_en[6] = instru.tri_d1_en;
|
||||
set_output_enable(chan_en);
|
||||
|
||||
set_channel_led(TRC.chan_en);
|
||||
set_channel_led(chan_en);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1281,9 +1277,9 @@ static void trig_en_check()
|
||||
|
||||
static void InitTrigChan()
|
||||
{
|
||||
memset(&TRC, 0x00, sizeof(TRC));
|
||||
TRC.chan_en[8] = true; // 5V default disable
|
||||
TRC.chan_en[9] = true;
|
||||
memset(chan_en, 0x00, sizeof(chan_en));
|
||||
chan_en[8] = true; // 5V default disable
|
||||
chan_en[9] = true;
|
||||
}
|
||||
|
||||
static void PIN_trig_edge_set(uint8_t trig0_edge, uint8_t trig1_edge)
|
||||
@@ -1336,6 +1332,8 @@ static void PIN_trig_edge_set(uint8_t trig0_edge, uint8_t trig1_edge)
|
||||
// }
|
||||
}
|
||||
|
||||
/* application use SPI parameters and buffers */
|
||||
#define SPI_GPIO_BUFF_SIZE 10
|
||||
static void GPIO_SPI_transfer(uint32_t *GPIO_CLK_CH, uint16_t spi_GPIO_txbuf)
|
||||
{
|
||||
uint16_t SPI_GPIO[SPI_GPIO_BUFF_SIZE] = {0};
|
||||
@@ -1697,7 +1695,7 @@ static void analog_current_ctrl_mode(struct gptimer_t *gpt)
|
||||
{
|
||||
cnt.output_rate = 0; // To get right data, ADC must be delay 1.5ms
|
||||
curr_out();
|
||||
set_output_enable(TRC.chan_en);
|
||||
set_output_enable(chan_en);
|
||||
}
|
||||
|
||||
// Notify counter(Notify control, check if we need to send notify)
|
||||
@@ -1738,7 +1736,7 @@ static void all_output_ctrl_mode(struct gptimer_t *gpt)
|
||||
{
|
||||
cnt.output_rate = 0; // To get right data, ADC must be delay 1.5ms
|
||||
curr_out();
|
||||
set_output_enable(TRC.chan_en);
|
||||
set_output_enable(chan_en);
|
||||
WorkModeLED();
|
||||
}
|
||||
|
||||
|
||||
+32
-32
@@ -47,22 +47,22 @@ void __all_output_ctrl_mode_ch_vsan(struct ch_all_out_ctrl_ctx_t *channel, uint3
|
||||
if (channel->t_early_period) {
|
||||
if (ch==CH_D0 && instru.tri_d0_as_5v_en==1) {
|
||||
if(channel->v_early) {
|
||||
TRC.chan_en[CH_D0] = 0;
|
||||
TRC.chan_en[8] = 0;
|
||||
chan_en[CH_D0] = 0;
|
||||
chan_en[8] = 0;
|
||||
} else {
|
||||
TRC.chan_en[CH_D0] = 0;
|
||||
TRC.chan_en[8] = 1;
|
||||
chan_en[CH_D0] = 0;
|
||||
chan_en[8] = 1;
|
||||
}
|
||||
} else if (ch==CH_D1 && instru.tri_d1_as_5v_en==1) {
|
||||
if(channel->v_early) {
|
||||
TRC.chan_en[CH_D1] = 0;
|
||||
TRC.chan_en[9] = 0;
|
||||
chan_en[CH_D1] = 0;
|
||||
chan_en[9] = 0;
|
||||
} else {
|
||||
TRC.chan_en[CH_D1] = 0;
|
||||
TRC.chan_en[9] = 1;
|
||||
chan_en[CH_D1] = 0;
|
||||
chan_en[9] = 1;
|
||||
}
|
||||
} else {
|
||||
TRC.chan_en[ch] = channel->v_early;
|
||||
chan_en[ch] = channel->v_early;
|
||||
}
|
||||
|
||||
if (channel->v_scan_rate >= channel->t_early) {
|
||||
@@ -92,22 +92,22 @@ void __all_output_ctrl_mode_ch_vsan(struct ch_all_out_ctrl_ctx_t *channel, uint3
|
||||
if (m < channel->t_part[i]) {
|
||||
if (ch == CH_D0 && instru.tri_d0_as_5v_en==1) {
|
||||
if(channel->v_mid & (1 << i)) {
|
||||
TRC.chan_en[CH_D0] = 0;
|
||||
TRC.chan_en[8] = 0;
|
||||
chan_en[CH_D0] = 0;
|
||||
chan_en[8] = 0;
|
||||
} else {
|
||||
TRC.chan_en[CH_D0] = 0;
|
||||
TRC.chan_en[8] = 1;
|
||||
chan_en[CH_D0] = 0;
|
||||
chan_en[8] = 1;
|
||||
}
|
||||
} else if (ch == CH_D1 && instru.tri_d1_as_5v_en==1) {
|
||||
if(channel->v_mid & (1 << i)) {
|
||||
TRC.chan_en[CH_D1] = 0;
|
||||
TRC.chan_en[9] = 0;
|
||||
chan_en[CH_D1] = 0;
|
||||
chan_en[9] = 0;
|
||||
} else {
|
||||
TRC.chan_en[CH_D1] = 0;
|
||||
TRC.chan_en[9] = 1;
|
||||
chan_en[CH_D1] = 0;
|
||||
chan_en[9] = 1;
|
||||
}
|
||||
} else {
|
||||
TRC.chan_en[ch] = channel->v_mid & (1 << i);
|
||||
chan_en[ch] = channel->v_mid & (1 << i);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -118,35 +118,35 @@ void __all_output_ctrl_mode_ch_vsan(struct ch_all_out_ctrl_ctx_t *channel, uint3
|
||||
if (channel->t_late_period) {
|
||||
if (ch==CH_D0 && instru.tri_d0_as_5v_en==1) {
|
||||
if(channel->v_late) {
|
||||
TRC.chan_en[CH_D0] = 0;
|
||||
TRC.chan_en[8] = 0;
|
||||
chan_en[CH_D0] = 0;
|
||||
chan_en[8] = 0;
|
||||
} else {
|
||||
TRC.chan_en[CH_D0] = 0;
|
||||
TRC.chan_en[8] = 1;
|
||||
chan_en[CH_D0] = 0;
|
||||
chan_en[8] = 1;
|
||||
}
|
||||
} else if (ch==CH_D1 && instru.tri_d1_as_5v_en==1) {
|
||||
if(channel->v_late) {
|
||||
TRC.chan_en[CH_D1] = 0;
|
||||
TRC.chan_en[9] = 0;
|
||||
chan_en[CH_D1] = 0;
|
||||
chan_en[9] = 0;
|
||||
} else {
|
||||
TRC.chan_en[CH_D1] = 0;
|
||||
TRC.chan_en[9] = 1;
|
||||
chan_en[CH_D1] = 0;
|
||||
chan_en[9] = 1;
|
||||
}
|
||||
} else {
|
||||
TRC.chan_en[ch] = channel->v_late;
|
||||
chan_en[ch] = channel->v_late;
|
||||
}
|
||||
|
||||
if (channel->v_scan_rate >= channel->t_late) {
|
||||
channel->v_scan_rate -= channel->t_late; //To get right time
|
||||
channel->used = false;
|
||||
if (ch==CH_D0 && instru.tri_d0_as_5v_en==1) { //ending
|
||||
TRC.chan_en[CH_D0] = 0;
|
||||
TRC.chan_en[8] = 1;
|
||||
chan_en[CH_D0] = 0;
|
||||
chan_en[8] = 1;
|
||||
} else if (ch==CH_D1 && instru.tri_d1_as_5v_en==1) {
|
||||
TRC.chan_en[CH_D1] = 0;
|
||||
TRC.chan_en[9] = 1;
|
||||
chan_en[CH_D1] = 0;
|
||||
chan_en[9] = 1;
|
||||
} else {
|
||||
TRC.chan_en[ch] = 0;
|
||||
chan_en[ch] = 0;
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user