Skip to content
Snippets Groups Projects
Commit 07b2fe3c authored by Michael DM Dryden's avatar Michael DM Dryden
Browse files

experiment: Removed send_data functions, replaced by calls to send whole buffers.

parent cf0f74ec
Branches
Tags
No related merge requests found
...@@ -34,6 +34,7 @@ volatile uint16_t tcf0period = 0; ...@@ -34,6 +34,7 @@ volatile uint16_t tcf0period = 0;
uint32_t skip_samples = 0; uint32_t skip_samples = 0;
//Private function declarations //Private function declarations
uint16_t set_timer_period(uint32_t period, volatile void *tc);
static void precond_rtc_callback(uint32_t time); static void precond_rtc_callback(uint32_t time);
static void porte_int0_lsv(void); static void porte_int0_lsv(void);
static void tcf0_ovf_callback(void); static void tcf0_ovf_callback(void);
...@@ -52,29 +53,6 @@ typedef void (*port_callback_t) (void); ...@@ -52,29 +53,6 @@ typedef void (*port_callback_t) (void);
static port_callback_t portd_int0_callback; static port_callback_t portd_int0_callback;
static port_callback_t portd_int1_callback; static port_callback_t portd_int1_callback;
void send_data_uint16(uint16_t data){
/**
* Sends uint16 data over USB in order in memory (should be LSB first for AVR - little endian)
*
* @param data 16-bit data
* @return Nothing.
*/
udi_cdc_putc(((unsigned char *)(&data))[0]);
udi_cdc_putc(((unsigned char *)(&data))[1]);
}
void send_data_int32(int32_t data){
/**
* Sends int32 data over USB in order in memory (should be LSB first for AVR - little endian)
*
* @param data 32-bit data
* @return Nothing.
*/
udi_cdc_putc(((unsigned char *)(&data))[0]);
udi_cdc_putc(((unsigned char *)(&data))[1]);
udi_cdc_putc(((unsigned char *)(&data))[2]);
udi_cdc_putc(((unsigned char *)(&data))[3]);
}
uint16_t set_timer_period(uint32_t period, volatile void *tc) uint16_t set_timer_period(uint32_t period, volatile void *tc)
{ {
/** /**
...@@ -595,14 +573,20 @@ static void porte_int0_lsv(void){ ...@@ -595,14 +573,20 @@ static void porte_int0_lsv(void){
/** /**
* ISR for taking LSV measurements. * ISR for taking LSV measurements.
*/ */
struct
{
uint16_t index;
int32_t result;
} data;
int32_t result = ads1255_read_fast24(); data.result = ads1255_read_fast24();
static uint16_t last_value = 0; static uint16_t last_value = 0;
uint32_t current = TCC1.CNT; uint32_t current = TCC1.CNT;
data.index = (current+last_value)>>1; //DAC value is average of current and last timer - approximation of center of averaging window
printf("B\n"); printf("B\n");
send_data_uint16((current+last_value)>>1); //DAC value is average of current and last timer - approximation of center of averaging window udi_cdc_write_buf(&data, 6);
send_data_int32(result);
last_value = (uint16_t)current; last_value = (uint16_t)current;
printf("\n"); printf("\n");
...@@ -766,11 +750,19 @@ void ca_experiment(uint16_t steps, uint16_t step_dac[], uint16_t step_seconds[]) ...@@ -766,11 +750,19 @@ void ca_experiment(uint16_t steps, uint16_t step_dac[], uint16_t step_seconds[])
} }
static void portd_int0_ca(void){ static void portd_int0_ca(void){
int32_t data = ads1255_read_fast24(); struct
{
uint16_t time1;
uint16_t time2;
int32_t current;
} data;
data.time1 = TCC0.CNT;
data.time2 = RTC.CNT;
data.current = ads1255_read_fast24();
printf("B\n"); printf("B\n");
send_data_uint16(TCC0.CNT); udi_cdc_write_buf(&data, 8);
send_data_uint16(RTC.CNT);
send_data_int32(data);
printf("\n"); printf("\n");
} }
...@@ -932,10 +924,19 @@ uint8_t _swv_singledir (uint16_t dacindex, uint16_t dacindex_stop, uint16_t daci ...@@ -932,10 +924,19 @@ uint8_t _swv_singledir (uint16_t dacindex, uint16_t dacindex_stop, uint16_t daci
} }
//data output //data output
struct
{
uint16_t lastindex;
int32_t forward;
int32_t reverse;
} data;
data.lastindex = lastindex;
data.forward = forward;
data.reverse = reverse;
printf("B\n"); printf("B\n");
send_data_uint16(lastindex); udi_cdc_write_buf(&data, 10);
send_data_int32(forward);
send_data_int32(reverse);
printf("\n"); printf("\n");
} }
...@@ -1080,10 +1081,19 @@ uint8_t _dpv_singledir (uint16_t dacindex, uint16_t dacindex_stop, uint16_t daci ...@@ -1080,10 +1081,19 @@ uint8_t _dpv_singledir (uint16_t dacindex, uint16_t dacindex_stop, uint16_t daci
} }
//data output //data output
struct
{
uint16_t lastindex;
int32_t forward;
int32_t reverse;
} data;
data.lastindex = lastindex;
data.forward = forward;
data.reverse = reverse;
printf("B\n"); printf("B\n");
send_data_uint16(lastindex); udi_cdc_write_buf(&data, 10);
send_data_int32(forward);
send_data_int32(reverse);
printf("\n"); printf("\n");
} }
......
...@@ -75,9 +75,6 @@ ...@@ -75,9 +75,6 @@
extern uint16_t g_gain; extern uint16_t g_gain;
extern uint8_t autogain_enable; extern uint8_t autogain_enable;
void send_data_uint16(uint16_t data);
void send_data_int32(int32_t data);
uint16_t set_timer_period(uint32_t period, volatile void *tc);
void pot_init(void); void pot_init(void);
void pot_set_gain(void); void pot_set_gain(void);
void volt_exp_start(void); void volt_exp_start(void);
......
No preview for this file type
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment