Before Hamming code
This commit is contained in:
parent
dbe32bd02e
commit
3644a35b79
34
Modem/afsk.c
34
Modem/afsk.c
|
@ -93,7 +93,7 @@ INLINE uint8_t sinSample(uint16_t i) {
|
||||||
#define PHASE_BITS 8 // How much to increment phase counter each sample
|
#define PHASE_BITS 8 // How much to increment phase counter each sample
|
||||||
#define PHASE_INC 1 // Nudge by an eigth of a sample each adjustment
|
#define PHASE_INC 1 // Nudge by an eigth of a sample each adjustment
|
||||||
#define PHASE_MAX (SAMPLESPERBIT * PHASE_BITS) // Resolution of our phase counter = 64
|
#define PHASE_MAX (SAMPLESPERBIT * PHASE_BITS) // Resolution of our phase counter = 64
|
||||||
#define PHASE_THRESHOLD (PHASE_MAX / 4) // Target transition point of our phase window
|
#define PHASE_THRESHOLD (PHASE_MAX / 2) // Target transition point of our phase window
|
||||||
|
|
||||||
// Modulation constants
|
// Modulation constants
|
||||||
#define MARK_FREQ 1200 // The tone frequency signifying a binary one
|
#define MARK_FREQ 1200 // The tone frequency signifying a binary one
|
||||||
|
@ -373,24 +373,24 @@ void afsk_adc_isr(Afsk *afsk, int8_t currentSample) {
|
||||||
// more 1's, we will assume that the transmitter
|
// more 1's, we will assume that the transmitter
|
||||||
// sent us a one, otherwise we assume a zero
|
// sent us a one, otherwise we assume a zero
|
||||||
|
|
||||||
uint8_t bits = afsk->sampledBits & 0x0f;
|
// uint8_t bits = afsk->sampledBits & 0x0f;
|
||||||
uint8_t c = 0;
|
// uint8_t c = 0;
|
||||||
c += bits & BV(1);
|
// c += bits & BV(1);
|
||||||
c += bits & BV(2);
|
// c += bits & BV(2);
|
||||||
c += bits & BV(3);
|
// c += bits & BV(3);
|
||||||
c += bits & BV(4);
|
// c += bits & BV(4);
|
||||||
c += bits & BV(5);
|
// c += bits & BV(5);
|
||||||
if (c >= 3) afsk->actualBits |= 1;
|
// if (c >= 3) afsk->actualBits |= 1;
|
||||||
|
|
||||||
//// Alternative using only three bits //////////
|
//// Alternative using only three bits //////////
|
||||||
// uint8_t bits = afsk->sampledBits & 0x07;
|
uint8_t bits = afsk->sampledBits & 0x07;
|
||||||
// if (bits == 0x07 || // 111
|
if (bits == 0x07 || // 111
|
||||||
// bits == 0x06 || // 110
|
bits == 0x06 || // 110
|
||||||
// bits == 0x05 || // 101
|
bits == 0x05 || // 101
|
||||||
// bits == 0x03 // 011
|
bits == 0x03 // 011
|
||||||
// ) {
|
) {
|
||||||
// afsk->actualBits |= 1;
|
afsk->actualBits |= 1;
|
||||||
// }
|
}
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
|
|
||||||
// Now we can pass the actual bit to the HDLC parser.
|
// Now we can pass the actual bit to the HDLC parser.
|
||||||
|
|
|
@ -67,7 +67,6 @@ void hw_afsk_adcInit(int ch, Afsk *_modem)
|
||||||
// temperature variations, but if you have a board with a
|
// temperature variations, but if you have a board with a
|
||||||
// crystal that is way off frequency, this can help alot.
|
// crystal that is way off frequency, this can help alot.
|
||||||
ICR1 = (((CPU_FREQ+FREQUENCY_CORRECTION)) / 9600) - 1;
|
ICR1 = (((CPU_FREQ+FREQUENCY_CORRECTION)) / 9600) - 1;
|
||||||
kprintf("ICR1=%d",ICR1);
|
|
||||||
|
|
||||||
// Set reference to AVCC (5V), select pin
|
// Set reference to AVCC (5V), select pin
|
||||||
// Set the ADMUX register. The first part (BV(REFS0)) sets
|
// Set the ADMUX register. The first part (BV(REFS0)) sets
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
#define VERS_BUILD 549
|
#define VERS_BUILD 577
|
||||||
#define VERS_HOST "vixen"
|
#define VERS_HOST "vixen"
|
||||||
|
|
Loading…
Reference in New Issue