Implemented variable VREF for DAC and ADC

This commit is contained in:
Mark Qvist 2019-01-04 16:13:29 +01:00
parent cf186ba64a
commit 8b2e66eb57
7 changed files with 51 additions and 5 deletions

View file

@ -22,7 +22,6 @@ int afsk_putchar(char c, FILE *stream);
// ADC and clock setup
void AFSK_hw_init(void) {
// Set Timer1 to normal operation
TCCR1A = 0;

View file

@ -46,7 +46,7 @@ inline static uint8_t sinSample(uint16_t i) {
#define CONFIG_AFSK_TRAILER_LEN 25UL
#define BIT_STUFF_LEN 5
#define BITRATE 2400
#define BITRATE 1200
#if BITRATE == 1200
#define CONFIG_SAMPLERATE 9600UL

30
hardware/VREF.c Normal file
View file

@ -0,0 +1,30 @@
#include "VREF.h"
uint8_t adcReference = CONFIG_ADC_REF;
uint8_t dacReference = CONFIG_DAC_REF;
void VREF_init(void) {
//DDRD |= _BV(7);
DDRD = 0xFF;
TCCR2A = _BV(WGM20) |
_BV(WGM21) |
_BV(COM2A1)|
_BV(COM2B1);
TCCR2B = _BV(CS20);
OCR2A = adcReference;
OCR2B = dacReference;
}
void vref_setADC(uint8_t value) {
adcReference = value;
OCR2A = adcReference;
}
void vref_setDAC(uint8_t value) {
dacReference = value;
OCR2B = dacReference;
}

11
hardware/VREF.h Normal file
View file

@ -0,0 +1,11 @@
#ifndef VREF_H
#define VREF_H
#include <avr/io.h>
#include "device.h"
void VREF_init(void);
void vref_setADC(uint8_t value);
void vref_setDAC(uint8_t value);
#endif