Added ADC messages its own buffer

This commit is contained in:
Your Name
2026-10-04 15:55:09 +03:00
parent 2d7ed3b1d7
commit 9f8b9f7715
3 changed files with 47 additions and 35 deletions
+28 -4
View File
@@ -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;
}
+1
View File
@@ -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