Files
@ 7a91d7557fd3
Branch filter:
Location: FeatherHAB/wsprhab/src/main.c
7a91d7557fd3
2.8 KiB
text/plain
Fix addr
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | #include "stm32f0xx_hal.h"
#include "si5351.h"
#include "jtencode.h"
#include "adc.h"
#include "dma.h"
#include "i2c.h"
#include "usart.h"
#include "gpio.h"
#include "gps.h"
void sysclk_init(void);
char call[7] = "N0CALL";
char loc[5] = "AA00";
uint8_t dbm = 27;
uint8_t tx_buffer[255];
int main(void)
{
HAL_Init();
sysclk_init();
gpio_init();
led_blink(5);
MX_DMA_Init();
MX_ADC_Init();
i2c_init();
HAL_GPIO_WritePin(OSC_NOTEN, 0);
HAL_GPIO_WritePin(TCXO_EN, 1);
HAL_Delay(100);
// MX_USART1_UART_Init();
//jtencode_init();
//gps_init();
si5351_init(i2c_get(), SI5351_CRYSTAL_LOAD_8PF, 0);
si5351_set_correction(0);
si5351_set_pll(SI5351_PLL_FIXED, SI5351_PLLA);
si5351_set_ms_source(SI5351_CLK0, SI5351_PLLA);
si5351_set_freq(100000UL * 100, 0, SI5351_CLK0);
si5351_drive_strength(SI5351_CLK0, SI5351_DRIVE_2MA); // Set for max power if desired (8ma max)
si5351_output_enable(SI5351_CLK0, 1); // Disable the clock initially
//wspr_encode(call, loc, dbm, tx_buffer);
si5351_pll_reset(SI5351_PLLA);
uint32_t led_timer = HAL_GetTick();
uint32_t last_gps = HAL_GetTick();
while (1)
{
if(HAL_GetTick() - led_timer > 100)
{
HAL_GPIO_TogglePin(LED_BLUE);
led_timer = HAL_GetTick();
}
if(HAL_GetTick() - last_gps > 100)
{
// gps_process();
last_gps = HAL_GetTick();
}
}
}
// Initialize system clocks
void sysclk_init(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_PeriphCLKInitTypeDef PeriphClkInit;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSI14;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSI14State = RCC_HSI14_ON;
RCC_OscInitStruct.HSICalibrationValue = 16;
RCC_OscInitStruct.HSI14CalibrationValue = 16;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_I2C1;
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK1;
PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_SYSCLK;
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit);
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
// SysTick_IRQn interrupt configuration
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
|