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.
17 lines
526 B
17 lines
526 B
2 years ago
|
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 {
|
||
|
print("Failed to set DAC: invalid channel value: 0x"); puth(value); print("\n");
|
||
|
}
|
||
|
}
|