//
// mBuoy Depth Select Firmware
// Copyright 2015 SeaLandAire Technologies
//
#include "config.h"
#include "error.h"
#include "system/gpio.h"
#include "system/sysclk.h"
#include "system/watchdog.h"
#include "system/uart.h"
#include "stm32f0xx_hal.h"
#include "si446x/si446x.h"
#include "aprs/aprs.h"
#include "aprs/afsk.h"
#include "gps.h"
int main(void)
{
hal_init();
sysclock_init();
gpio_init();
afsk_init();
si446x_init();
gps_poweron();
// Software timers
uint32_t last_transmission = HAL_GetTick();
uint32_t last_led = HAL_GetTick();
while (1)
{
// Blink LEDs
if(HAL_GetTick() - last_transmission > 700)
{
gps_update_data(); // Will always return at 1hz rate (default measurement rate)
aprs_send();
//while(afsk_busy());
last_transmission = HAL_GetTick();
}
if(HAL_GetTick() - last_led > 100)
{
HAL_GPIO_TogglePin(LED_POWER);
last_led = HAL_GetTick();
}
if(afsk_request_cwoff())
si446x_cw_off();
// High-frequency function calls
// watchdog_feed();
}
}