void writeRtcLatLng(void)
{
uint32_t tmp;
// RTC Backup registers have the first 2 bytes reserved. So we get to use the second half of each.
// Write lat tp first two backup registers
tmp = *(uint32_t*)⪫
rtcRegWrite(RTC_BKP_DR6, tmp >> 16);
rtcRegWrite(RTC_BKP_DR7, tmp & 0xffff);
// Read lon from third and fourth backup registers
tmp = *(uint32_t*)&lng;
rtcRegWrite(RTC_BKP_DR8, tmp >> 16);
rtcRegWrite(RTC_BKP_DR9, tmp & 0xffff);
printf("[readRtcLatLng] wrote to RTC backup registers lat: %f lng: %f\r\n", lat, lng);
}
void readRtcLatLng(void)
{
uint32_t tmp;
// RTC Backup registers have the first 2 bytes reserved. So we get to use the second half of each.
// Read lat from first two backup registers
tmp = rtcRegRead(RTC_BKP_DR6);
tmp <<= 16;
tmp |= rtcRegRead(RTC_BKP_DR7);
lat = *(float*)&tmp;
// Read lon from third and fourth backup registers
tmp = rtcRegRead(RTC_BKP_DR8);
tmp <<= 16;
tmp |= rtcRegRead(RTC_BKP_DR9);
lng = *(float*)&tmp;
printf("[readRtcLatLng] read from RTC backup registers lat: %f lng: %f\r\n", lat, lng);
}