kopia lustrzana https://github.com/mikaelnousiainen/RS41ng
More refinements to the HCI calibration
rodzic
324c3bf83b
commit
0901b02de4
|
@ -69,6 +69,9 @@
|
|||
#define BANK_GREEN_LED GPIOC
|
||||
#define PIN_GREEN_LED GPIO_Pin_6
|
||||
|
||||
#define BANK_YELLOW_LED GPIOC
|
||||
#define PIN_YELLOW_LED GPIO_Pin_7
|
||||
|
||||
#define BANK_MOSI GPIOA
|
||||
#define PIN_MOSI GPIO_Pin_7
|
||||
#define BANK_SCK GPIOA
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "delay.h"
|
||||
#include "log.h"
|
||||
#include "gpio.h"
|
||||
#include "millis.h"
|
||||
|
||||
#define BUTTON_PRESS_LONG_COUNT SYSTEM_SCHEDULER_TIMER_TICKS_PER_SECOND
|
||||
|
||||
|
@ -126,6 +127,15 @@ static void gpio_init()
|
|||
gpio_init.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||
gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_Init(BANK_RED_LED, &gpio_init);
|
||||
|
||||
#ifdef DFM17
|
||||
// Yellow LED
|
||||
gpio_init.GPIO_Pin = PIN_YELLOW_LED;
|
||||
gpio_init.GPIO_Mode = GPIO_Mode_Out_PP;
|
||||
gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_Init(BANK_YELLOW_LED, &gpio_init);
|
||||
|
||||
#endif //DFM17
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -343,6 +353,24 @@ void system_set_red_led(bool enabled)
|
|||
#endif
|
||||
}
|
||||
|
||||
void system_set_yellow_led(bool enabled)
|
||||
{
|
||||
#ifdef RS41
|
||||
if (enabled) {
|
||||
GPIO_ResetBits(BANK_YELLOW_LED, PIN_YELLOW_LED);
|
||||
} else {
|
||||
GPIO_SetBits(BANK_YELLOW_LED, PIN_YELLOW_LED);
|
||||
}
|
||||
#endif
|
||||
#ifdef DFM17
|
||||
if (enabled) {
|
||||
GPIO_SetBits(BANK_YELLOW_LED, PIN_YELLOW_LED);
|
||||
} else {
|
||||
GPIO_ResetBits(BANK_YELLOW_LED, PIN_YELLOW_LED);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void system_disable_irq()
|
||||
{
|
||||
__disable_irq();
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef __HAL_SYSTEM_H
|
||||
#define __HAL_SYSTEM_H
|
||||
|
||||
#include "config.h"
|
||||
#include "hal.h"
|
||||
|
||||
#define GPIO_PIN_LED_GREEN GPIO_Pin_7
|
||||
|
@ -17,6 +18,9 @@ void system_disable_irq();
|
|||
void system_enable_irq();
|
||||
void system_set_green_led(bool enabled);
|
||||
void system_set_red_led(bool enabled);
|
||||
#ifdef DFM17
|
||||
void system_set_yellow_led(bool enabled);
|
||||
#endif //DFM17
|
||||
uint16_t system_get_battery_voltage_millivolts();
|
||||
uint16_t system_get_button_adc_value();
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ void EXTI9_5_IRQHandler(void)
|
|||
old_millis = m; // First timepulse. Just store millis.
|
||||
} else {
|
||||
d_millis = m - old_millis;
|
||||
delta = (int) (m - old_millis - 1000) / 5;
|
||||
delta = (int) (1000 - d_millis) / 5;
|
||||
if (((delta + calib_suggestion) >= 0) &&
|
||||
((delta + calib_suggestion <= 31)) ) {
|
||||
// If the delta makes sense, apply to the suggestion. Otherwise, skip.
|
||||
|
|
26
src/main.c
26
src/main.c
|
@ -1,3 +1,4 @@
|
|||
#include "hal/stm_lib/inc/stm32f10x_rcc.h"
|
||||
#include "hal/system.h"
|
||||
#include "hal/spi.h"
|
||||
#include "hal/usart_gps.h"
|
||||
|
@ -13,6 +14,7 @@
|
|||
#include "config.h"
|
||||
#include "log.h"
|
||||
#include "hal/timepulse.h"
|
||||
#include "hal/millis.h"
|
||||
|
||||
#ifdef RS41
|
||||
#include "hal/i2c.h"
|
||||
|
@ -75,9 +77,24 @@ void set_red_led(bool enabled)
|
|||
system_set_red_led(enabled);
|
||||
}
|
||||
|
||||
#ifdef DFM17
|
||||
void set_yellow_led(bool enabled)
|
||||
{
|
||||
if ((LEDS_DISABLE_ALTITUDE_METERS > 0) && (current_gps_data.altitude_mm / 1000 > LEDS_DISABLE_ALTITUDE_METERS)) {
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
system_set_yellow_led(enabled);
|
||||
}
|
||||
|
||||
#endif //DFM17
|
||||
|
||||
int main(void)
|
||||
{
|
||||
bool success;
|
||||
bool yellowLEDstate = false;
|
||||
int old_calib_suggestion = 16;
|
||||
int calib_changes = 0;
|
||||
|
||||
// Set up interrupt handlers
|
||||
system_handle_timer_tick = handle_timer_tick;
|
||||
|
@ -121,8 +138,15 @@ int main(void)
|
|||
timepulse_init();
|
||||
while (1) {
|
||||
if (timepulsed != 0) {
|
||||
log_info("Time Pulse. Calib: %d, Delta: %d\n", calib_suggestion, d_millis);
|
||||
log_info("Time Pulse. Calib: %d, Delta: %d\n", calib_suggestion, (int) d_millis);
|
||||
timepulsed = 0;
|
||||
if (calib_suggestion != old_calib_suggestion) {
|
||||
old_calib_suggestion = calib_suggestion;
|
||||
RCC_AdjustHSICalibrationValue(calib_suggestion);
|
||||
yellowLEDstate = !yellowLEDstate;
|
||||
set_yellow_led(yellowLEDstate);
|
||||
calib_changes++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif //DFM17
|
||||
|
|
Ładowanie…
Reference in New Issue