You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
579 B
20 lines
579 B
void puth(unsigned int i);
|
|
void puts(const char *a);
|
|
|
|
void dac_init(void) {
|
|
// No buffers required since we have an opamp
|
|
register_set(&(DAC->DHR12R1), 0U, 0xFFFU);
|
|
register_set(&(DAC->DHR12R2), 0U, 0xFFFU);
|
|
register_set(&(DAC->CR), DAC_CR_EN1 | DAC_CR_EN2, 0x3FFF3FFFU);
|
|
}
|
|
|
|
void dac_set(int channel, uint32_t value) {
|
|
if (channel == 0) {
|
|
register_set(&(DAC->DHR12R1), value, 0xFFFU);
|
|
} else if (channel == 1) {
|
|
register_set(&(DAC->DHR12R2), value, 0xFFFU);
|
|
} else {
|
|
puts("Failed to set DAC: invalid channel value: 0x"); puth(value); puts("\n");
|
|
}
|
|
}
|
|
|
|
|