Added ADC messages its own buffer
This commit is contained in:
@@ -35,6 +35,12 @@ struct k_msgq adc_mask_msgq;
|
||||
// ADC TIMER
|
||||
struct k_timer adc_timer;
|
||||
|
||||
// ADC BUFFER
|
||||
#define ADC_BUFFER_SIZE 10
|
||||
struct command_message_t adc_msg_buffer[ADC_BUFFER_SIZE];
|
||||
struct command_message_t *adc_msg_buffer_ptr;
|
||||
int *adc_data_type;
|
||||
|
||||
|
||||
static void adc_timer_handler(struct k_timer *timer) {
|
||||
// Timer trigger
|
||||
@@ -67,9 +73,13 @@ static void adc_thread(void *p1, void *p2, void *p3) {
|
||||
}
|
||||
|
||||
// Send to USB
|
||||
struct command_message_t *msg = usb_get_next_tx_buf();
|
||||
command_create_message(msg, sizeof(values), ADC_READ_ALL, (uint8_t *)values);
|
||||
usb_send_command(msg);
|
||||
command_create_message(adc_msg_buffer_ptr, sizeof(values), ADC_READ_ALL, (uint8_t *)values);
|
||||
usb_send_command(adc_msg_buffer_ptr);
|
||||
adc_msg_buffer_ptr++;
|
||||
|
||||
if (adc_msg_buffer_ptr > &adc_msg_buffer[ADC_BUFFER_SIZE-1]) {
|
||||
adc_msg_buffer_ptr = adc_msg_buffer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,6 +92,10 @@ int adc_init_all(void) {
|
||||
// TIMER
|
||||
k_timer_init(&adc_timer, adc_timer_handler, NULL);
|
||||
|
||||
// BUFFER
|
||||
memset(adc_msg_buffer, 0, sizeof(adc_msg_buffer));
|
||||
adc_msg_buffer_ptr = adc_msg_buffer;
|
||||
|
||||
// MUX init
|
||||
ret = mux_init();
|
||||
if (ret != 0) {
|
||||
@@ -137,7 +151,6 @@ int adc_init_all(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int adc_read_id(int id) {
|
||||
int ret;
|
||||
int val_mv = 0;
|
||||
@@ -209,4 +222,15 @@ int adc_timer_set(int interval_ms) {
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void* adc_get_buffer() {
|
||||
struct command_message_t *ptr = adc_msg_buffer_ptr;
|
||||
ptr--;
|
||||
|
||||
if (ptr < &adc_msg_buffer[0]) {
|
||||
ptr = &adc_msg_buffer[ADC_BUFFER_SIZE-1];
|
||||
}
|
||||
|
||||
return (void *)ptr;
|
||||
}
|
||||
@@ -12,6 +12,7 @@ int adc_init_all();
|
||||
int adc_read_id(int id);
|
||||
int adc_add_mask(uint32_t mask);
|
||||
int adc_timer_set(int interval_ms);
|
||||
void* adc_get_buffer();
|
||||
|
||||
|
||||
#endif // ADC_H
|
||||
|
||||
Reference in New Issue
Block a user