frequency to divider calculation
This commit is contained in:
parent
497318e34a
commit
7ddc7e8f71
21
generator.c
21
generator.c
@ -4,11 +4,28 @@
|
|||||||
#include "generator.h"
|
#include "generator.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const float BASE_FREQUENCY = 2457600.0;
|
||||||
|
const float MAIN_DIVIDER = 8388606.0; // 2^23
|
||||||
|
|
||||||
|
|
||||||
|
static uint16_t frequencyToDivider(uint16_t freq) {
|
||||||
|
float f = (float) freq;
|
||||||
|
float n = (f * MAIN_DIVIDER) / BASE_FREQUENCY;
|
||||||
|
uint16_t i = (uint16_t) n;
|
||||||
|
if (n - i >= 0.5) {
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
void generatorInit() {
|
void generatorInit() {
|
||||||
P1DIR |= BIT0 | BIT1 | BIT2 | BIT3;
|
P1DIR |= BIT0 | BIT1 | BIT2 | BIT3;
|
||||||
P1OUT |= BIT0 | BIT1 | BIT2 | BIT3;
|
P1OUT |= BIT0 | BIT1 | BIT2 | BIT3;
|
||||||
|
|
||||||
|
genShifter(0, frequencyToDivider(441));
|
||||||
genShifter(0, 0x8002);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user