diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,6 @@ #include "si5351.h" #include "jtencode.h" #include "adc.h" -#include "dma.h" #include "i2c.h" #include "usart.h" #include "gpio.h" @@ -94,15 +93,23 @@ int main(void) sysclk_init(); gpio_init(); - dma_init(); adc_init(); i2c_init(); -// gps_init(); + gps_init(); + + + jtencode_init(); + + HAL_Delay(300); + + // Turn GPS on + HAL_GPIO_WritePin(GPS_NOTEN, 0); // Disable ICs HAL_GPIO_WritePin(OSC_NOTEN, 1); HAL_GPIO_WritePin(TCXO_EN, 0); + HAL_GPIO_TogglePin(LED_BLUE); // Start timer for WSPR __TIM1_CLK_ENABLE(); @@ -117,15 +124,10 @@ int main(void) HAL_NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn, 0, 0); HAL_NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn); - HAL_Delay(100); - - - jtencode_init(); - //gps_init(); uint32_t led_timer = HAL_GetTick(); uint32_t last_gps = HAL_GetTick(); - uint32_t last_wspr = 0xfffff; // start immediately. + uint32_t last_wspr = 0xfffff; // start immediately. HAL_GPIO_TogglePin(LED_BLUE); HAL_Delay(100); @@ -139,15 +141,16 @@ int main(void) while (1) { + parse_gps_transmission(); if(HAL_GetTick() - last_wspr > 120000) { encode_wspr(); last_wspr = HAL_GetTick(); } - + if(HAL_GetTick() - led_timer > 100) { -// HAL_GPIO_TogglePin(LED_BLUE); + HAL_GPIO_TogglePin(LED_BLUE); led_timer = HAL_GetTick(); } if(HAL_GetTick() - last_gps > 3000) @@ -156,7 +159,7 @@ int main(void) last_gps = HAL_GetTick(); } - enter_sleep(); + //enter_sleep(); } } @@ -195,14 +198,15 @@ void sysclk_init(void) RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; HAL_RCC_OscConfig(&RCC_OscInitStruct); - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK; + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1; 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.Usart1ClockSelection = RCC_USART1CLKSOURCE_SYSCLK; //RCC_USART1CLKSOURCE_PCLK1; PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_SYSCLK; HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit);