mirror of
https://github.com/markqvist/OpenModem.git
synced 2025-12-15 16:39:00 -05:00
Implemented variable VREF for DAC and ADC
This commit is contained in:
parent
cf186ba64a
commit
8b2e66eb57
7 changed files with 51 additions and 5 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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
30
hardware/VREF.c
Normal 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
11
hardware/VREF.h
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue