32 lines
553 B
C
32 lines
553 B
C
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
#include <msp430g2553.h>
|
|
#include "generator.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const float BASE_FREQUENCY = 2457600.0;
|
|
const float MAIN_DIVIDER = 8388606.0; // 2^23
|
|
|
|
|
|
static uint16_t frequencyToDivider(float freq) {
|
|
float n = (freq * MAIN_DIVIDER) / BASE_FREQUENCY;
|
|
uint16_t i = (uint16_t) n;
|
|
if (n - i >= 0.5) {
|
|
i += 1;
|
|
}
|
|
return i;
|
|
}
|
|
|
|
void generatorInit() {
|
|
P1DIR |= BIT0 | BIT1 | BIT2 | BIT3;
|
|
P1OUT |= BIT0 | BIT1 | BIT2 | BIT3;
|
|
|
|
genShifter(0, frequencyToDivider(1000));
|
|
genShifter(1, frequencyToDivider(10));
|
|
}
|
|
|