Skip to content
Snippets Groups Projects
Commit a3b23ddf authored by Pascal Engeler's avatar Pascal Engeler
Browse files

Added explicit template instantiation

parent e80fa66a
No related branches found
No related tags found
No related merge requests found
......@@ -8,6 +8,7 @@
#define nCS 46
SPISettings spisettings = SPISettings(SPIRATE, MSBFIRST, SPI_MODE3);
Ad7124_4 adc(nCS, &spisettings);
......@@ -27,10 +28,33 @@ double temperature(double R){
return -1.;
}
//string must have length num+3
void binstr(uint32_t num, unsigned num_bits, char* string){
for(int i = 0; i < num_bits+3; ++i){
string[i] = '0';
}
string[num_bits+2] = '\0';
string[0] = '0';
string[1] = 'b';
if(num_bits > 32){
return;
}
uint32_t mask = 0x00000001_u32 << 31;
for(unsigned i = 0; i < num_bits; ++i){
if((num & mask) == 0_u32){
string[2+i] = '0';
}
else{
string[2+i] = '1';
}
mask >>= 1;
}
}
void setup() {
Serial.begin(9600);
//Serial.begin(9600);
//Serial.begin(460800);
//Serial.begin(128000);
Serial.begin(128000);
analogWriteResolution(12);
analogWrite(DAC1, 0b000000000000);
......@@ -39,32 +63,36 @@ void setup() {
SPI.begin();
delay(1000);
//Setup ADC
adc.select();
adc.write_register(
adc.reset();
delay(1000);
adc.write_register<uint16_t>(
REG_ADC_CONTROL,
uint8_t(ADC_CONTROL_REF_EN_1 | ADC_CONTROL_POWER_MODE_FULL_POWER | ADC_CONTROL_Mode_CONTINUOUS | ADC_CONTROL_CLK_SEL_INTERNAL)
ADC_CONTROL_REF_EN_1 | ADC_CONTROL_POWER_MODE_FULL_POWER | ADC_CONTROL_Mode_CONTINUOUS | ADC_CONTROL_CLK_SEL_INTERNAL
);
adc.write_register(
adc.write_register<uint16_t>(
REG_CONFIG_0,
uint16_t(CONFIG_Burnout_OFF | CONFIG_REF_BUFP_1 | CONFIG_REF_BUFM_1 | CONFIG_AIN_BUFP_1 | CONFIG_AIN_BUFM_1 | CONFIG_REF_SEL_INTERNAL | CONFIG_PGA_GAIN1)
CONFIG_Burnout_OFF | CONFIG_REF_BUFP_1 | CONFIG_REF_BUFM_1 | CONFIG_AIN_BUFP_1 | CONFIG_AIN_BUFM_1 | CONFIG_REF_SEL_INTERNAL | CONFIG_PGA_GAIN1
);
adc.write_register(
adc.write_register<uint32_t>(
REG_FILTER_0,
uint32_t(FILTER_Filter_SINC4 | FILTER_FS_2047)
FILTER_Filter_SINC4 | FILTER_FS_2047
);
adc.write_register(
adc.write_register<uint16_t>(
REG_CHANNEL_0,
uint16_t(CHANNEL_Enable_1 | CHANNEL_Setup_0 | CHANNEL_AINP_AIN0 | CHANNEL_AINM_AIN1)
CHANNEL_Enable_1 | CHANNEL_Setup_0 | CHANNEL_AINP_AIN0 | CHANNEL_AINM_AIN1
);
adc.deselect();
}
void loop() {
adc.select();
/*
//For now we just discard errors
//if(adc.check_error()){
// adc.get_error();
//}
uint32_t adc_data;
if(adc.data_available()){
adc_data = adc.get_data();
......@@ -77,12 +105,5 @@ void loop() {
buf[5] = uint8_t(0x0a);
Serial.write(buf, 6);
}
*/
uint8_t buf[2];
buf[0] = uint8_t(adc.read_register(REG_Status, 1) & 0xFF);
buf[1] = '\n';
Serial.print(unsigned(buf[0]), BIN);
Serial.print('\n');
adc.deselect();
delay(500);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment