kopia lustrzana https://github.com/SP8EBC/ParaTNC
58 wiersze
2.1 KiB
C
58 wiersze
2.1 KiB
C
#include "afsk_pr.h"
|
||
#include <stm32f10x.h>
|
||
#include "antilib_adc.h"
|
||
|
||
/*
|
||
#define N 8
|
||
static int16_t data[N];
|
||
static int16_t coeffloi[N];
|
||
static int16_t coeffloq[N];
|
||
static int16_t coeffhii[N];
|
||
static int16_t coeffhiq[N];
|
||
static int16_t ptr=0;
|
||
static uint8_t niesynchro_bity; // zdekodowane przez filtr bity.. Niesynchroniczne do pr<70>dko<6B>ci bodowej
|
||
static uint8_t synchro_bity; // bity zsynchronizowane do pr<70>dko<6B>ci bodowej
|
||
unsigned char nrzi_bity; // bity zsynchronizowane i po dekodowaniu NRZI
|
||
static uint16_t destuff_bity; // bity po destuffingu. Zawierajace wlasciwe dane ramki AX25
|
||
static int8_t bit_faza; // aktualna "faza" bitow
|
||
static uint8_t bit_counter = 0;
|
||
static uint8_t DCD = 0; // data carrier detect
|
||
static uint8_t PacketByteCounter = 0; // licznik odebranych bajt<6A>w z jednej ramki
|
||
|
||
struct Frame {
|
||
char RAWContent[80];
|
||
};
|
||
|
||
struct Frame Frame;
|
||
*/
|
||
void ADCStartConfig(void) {
|
||
RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
|
||
ADC1->CR2 |= ADC_CR2_ADON;
|
||
ADC1->CR2 |= ADC_CR2_RSTCAL; // Reset calibration
|
||
while(ADC1->CR2 & ADC_CR2_RSTCAL); // Wait for reset
|
||
ADC1->CR2 |= ADC_CR2_CAL; // Start calibration
|
||
while(ADC1->CR2 & ADC_CR2_CAL);
|
||
ADC1->SQR1 = ADC_SEQUENCE_LENGTH(0); // odczyt tylko jednego kana<6E>u
|
||
ADC1->SQR3 = ADC_SEQ1(11); // wyb<79>r kana<6E>u ADC -- 11 - napi<70>cie zasilania
|
||
ADC1->SMPR1 = ADC_SAMPLE_TIME0(SAMPLE_TIME_7_5); // czas pr<70>bkowania
|
||
// ADC1->CR1 = ADC_CR1_EOCIE; /// przerwanie na zako<6B>czenie konwersji
|
||
// NVIC_EnableIRQ(ADC1_2_IRQn);
|
||
// NVIC_SetPriority(ADC1_2_IRQn, 3);
|
||
ADC1->CR2 |= ADC_CR2_CONT;
|
||
ADC1->CR2 |= ADC_CR2_ADON;
|
||
ADC1->DR;
|
||
|
||
}
|
||
|
||
void DACStartConfig(void) {
|
||
RCC->APB1ENR |= RCC_APB1ENR_DACEN; // wlanczenie zegara
|
||
// rejestr CR przetownirka domyslnie ma same zera
|
||
DAC->CR &= (0xFFFFFFFF ^ DAC_CR_WAVE1); // bez generowania przebiegu na wyjsciu
|
||
DAC->CR |= DAC_CR_TSEL1; // programowe wyzwalanie przetwornika (przez flaga swtrig)
|
||
DAC->CR |= DAC_CR_TEN1;
|
||
DAC->CR |= DAC_CR_EN1;
|
||
DAC->DHR8R1 = 10;
|
||
DAC->SWTRIGR |= DAC_SWTRIGR_SWTRIG1;
|
||
|
||
}
|