kopia lustrzana https://github.com/SP8EBC/ParaTNC
led blinking code unified
rodzic
a0409efaf3
commit
d6166170b0
|
@ -8,13 +8,75 @@
|
||||||
#ifndef LEDCONFIG_H_
|
#ifndef LEDCONFIG_H_
|
||||||
#define LEDCONFIG_H_
|
#define LEDCONFIG_H_
|
||||||
|
|
||||||
|
// PC8 - LED1 - upper
|
||||||
|
// PC9 - LED2 - lower
|
||||||
|
|
||||||
|
#include <stm32f10x.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#define BLINK_DURATION_MSEC 20 * BLINK_MSEC_PER_SVC_CALL
|
||||||
|
#define BLINK_MSEC_PER_SVC_CALL 10
|
||||||
|
|
||||||
/* C++ detection */
|
/* C++ detection */
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void LedConfig(void);
|
extern uint8_t led_blinking_led2;
|
||||||
|
extern uint8_t led_blinking_led1;
|
||||||
|
|
||||||
|
void led_config(void);
|
||||||
|
void led_service_blink(void);
|
||||||
|
|
||||||
|
inline void led_control_led1_upper(bool _in) {
|
||||||
|
if (_in == true) {
|
||||||
|
GPIOC->BSRR |= GPIO_BSRR_BS8;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
GPIOC->BSRR |= GPIO_BSRR_BR8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void led_control_led2_bottom(bool _in) {
|
||||||
|
if (_in == true) {
|
||||||
|
GPIOC->BSRR |= GPIO_BSRR_BS9;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
GPIOC->BSRR |= GPIO_BSRR_BR9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void led_flip_led1_upper(void) {
|
||||||
|
if ((GPIOC->ODR & GPIO_ODR_ODR8) == GPIO_ODR_ODR8) {
|
||||||
|
GPIOC->BSRR |= GPIO_BSRR_BR8;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
GPIOC->BSRR |= GPIO_BSRR_BS8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void led_flip_led2_bottom(void) {
|
||||||
|
if ((GPIOC->ODR & GPIO_ODR_ODR9) == GPIO_ODR_ODR9) {
|
||||||
|
GPIOC->BSRR |= GPIO_BSRR_BR9;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
GPIOC->BSRR |= GPIO_BSRR_BS9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void led_blink_led1_upper(void) {
|
||||||
|
led_blinking_led1 = BLINK_DURATION_MSEC;
|
||||||
|
|
||||||
|
led_flip_led1_upper();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void led_blink_led2_botoom(void) {
|
||||||
|
led_blinking_led2 = BLINK_DURATION_MSEC;
|
||||||
|
|
||||||
|
led_flip_led2_bottom();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
#include "aprs/ax25.h"
|
#include "aprs/ax25.h"
|
||||||
#include "drivers/serial.h"
|
#include "drivers/serial.h"
|
||||||
|
|
||||||
#define SW_VER "DF03"
|
#define SW_VER "DF04"
|
||||||
#define SW_DATE "25062020"
|
#define SW_DATE "12072020"
|
||||||
|
|
||||||
#define SYSTICK_TICKS_PER_SECONDS 100
|
#define SYSTICK_TICKS_PER_SECONDS 100
|
||||||
#define SYSTICK_TICKS_PERIOD 10
|
#define SYSTICK_TICKS_PERIOD 10
|
||||||
|
|
|
@ -5,8 +5,14 @@
|
||||||
* Author: mateusz
|
* Author: mateusz
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "LedConfig.h"
|
||||||
#include <stm32f10x.h>
|
#include <stm32f10x.h>
|
||||||
|
|
||||||
|
// PC8 - LED1 - upper
|
||||||
|
// PC9 - LED2 - lower
|
||||||
|
|
||||||
|
uint8_t led_blinking_led2;
|
||||||
|
uint8_t led_blinking_led1;
|
||||||
|
|
||||||
void led_init(void) {
|
void led_init(void) {
|
||||||
GPIO_InitTypeDef GPIO_InitStructure;
|
GPIO_InitTypeDef GPIO_InitStructure;
|
||||||
|
@ -26,3 +32,29 @@ void led_init(void) {
|
||||||
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
GPIO_Init(GPIOA, &GPIO_InitStructure);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void led_service_blink(void) {
|
||||||
|
|
||||||
|
if (led_blinking_led1 > 0) {
|
||||||
|
led_blinking_led1 -= BLINK_MSEC_PER_SVC_CALL;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (led_blinking_led2 > 0) {
|
||||||
|
led_blinking_led2 -= BLINK_MSEC_PER_SVC_CALL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (led_blinking_led1 == BLINK_MSEC_PER_SVC_CALL) {
|
||||||
|
led_flip_led1_upper();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (led_blinking_led2 == BLINK_MSEC_PER_SVC_CALL) {
|
||||||
|
led_flip_led2_bottom();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#include "aprs/telemetry.h"
|
#include "aprs/telemetry.h"
|
||||||
#include "aprs/beacon.h"
|
#include "aprs/beacon.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "LedConfig.h"
|
||||||
//#include "afsk.h"
|
//#include "afsk.h"
|
||||||
#include "diag/Trace.h"
|
#include "diag/Trace.h"
|
||||||
|
|
||||||
|
@ -81,6 +82,8 @@ void SysTick_Handler(void) {
|
||||||
|
|
||||||
main_ten_second_pool_decremenet_counter();
|
main_ten_second_pool_decremenet_counter();
|
||||||
|
|
||||||
|
led_service_blink();
|
||||||
|
|
||||||
srl_keep_timeout(main_kiss_srl_ctx_ptr);
|
srl_keep_timeout(main_kiss_srl_ctx_ptr);
|
||||||
srl_keep_timeout(main_wx_srl_ctx_ptr);
|
srl_keep_timeout(main_wx_srl_ctx_ptr);
|
||||||
|
|
||||||
|
@ -147,12 +150,15 @@ void TIM4_IRQHandler( void ) {
|
||||||
DAC->DHR8R1 = AFSK_DAC_ISR(&main_afsk);
|
DAC->DHR8R1 = AFSK_DAC_ISR(&main_afsk);
|
||||||
DAC->SWTRIGR |= 1;
|
DAC->SWTRIGR |= 1;
|
||||||
|
|
||||||
if (main_afsk.sending) {
|
#ifndef _METEO
|
||||||
GPIO_SetBits(GPIOC, GPIO_Pin_9);
|
led_control_led2_bottom(main_afsk.sending);
|
||||||
}
|
#endif
|
||||||
else {
|
// if (main_afsk.sending) {
|
||||||
GPIO_ResetBits(GPIOC, GPIO_Pin_9);
|
// GPIO_SetBits(GPIOC, GPIO_Pin_9);
|
||||||
}
|
// }
|
||||||
|
// else {
|
||||||
|
// GPIO_ResetBits(GPIOC, GPIO_Pin_9);
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,12 +171,7 @@ void TIM7_IRQHandler(void) {
|
||||||
if(ASC == 3) {
|
if(ASC == 3) {
|
||||||
AdcValue = (short int)(( AdcBuffer[0] + AdcBuffer[1] + AdcBuffer[2] + AdcBuffer[3]) >> 1);
|
AdcValue = (short int)(( AdcBuffer[0] + AdcBuffer[1] + AdcBuffer[2] + AdcBuffer[3]) >> 1);
|
||||||
AFSK_ADC_ISR(&main_afsk, (AdcValue - 4095) );
|
AFSK_ADC_ISR(&main_afsk, (AdcValue - 4095) );
|
||||||
if(main_ax25.dcd == true) { // niebieska dioda
|
led_control_led1_upper(main_ax25.dcd);
|
||||||
GPIOC->BSRR |= GPIO_BSRR_BS8;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
GPIOC->BSRR |= GPIO_BSRR_BR8;
|
|
||||||
}
|
|
||||||
ASC = 0;
|
ASC = 0;
|
||||||
|
|
||||||
if (ASC2++ == 2) {
|
if (ASC2++ == 2) {
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include "rte_wx.h"
|
#include "rte_wx.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "wx_handler.h"
|
#include "wx_handler.h"
|
||||||
|
#include "LedConfig.h"
|
||||||
|
|
||||||
#define MINUM_PULSE_LN 15
|
#define MINUM_PULSE_LN 15
|
||||||
#define MAXIMUM_PULSE_SLEW_RATE 4000
|
#define MAXIMUM_PULSE_SLEW_RATE 4000
|
||||||
|
@ -211,6 +212,9 @@ void analog_anemometer_dma_irq(void) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// blinking the led - led will blink every 10 pulses, so if wind is 1m/s it will blink every 10 seconds
|
||||||
|
led_blink_led2_botoom();
|
||||||
|
|
||||||
// calculating time between pulses
|
// calculating time between pulses
|
||||||
for (i = 0; i < ANALOG_ANEMOMETER_SPEED_PULSES_N - 1; i++) {
|
for (i = 0; i < ANALOG_ANEMOMETER_SPEED_PULSES_N - 1; i++) {
|
||||||
pulse_ln = analog_anemometer_windspeed_pulses_time[i + 1] -
|
pulse_ln = analog_anemometer_windspeed_pulses_time[i + 1] -
|
||||||
|
@ -424,6 +428,14 @@ int16_t analog_anemometer_direction_handler(void) {
|
||||||
|
|
||||||
rte_wx_winddirection_last = downscaled_angle;
|
rte_wx_winddirection_last = downscaled_angle;
|
||||||
|
|
||||||
|
// set the led state
|
||||||
|
if (rte_wx_winddirection_last > 0 && rte_wx_winddirection_last < 180) {
|
||||||
|
led_control_led2_bottom(true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
led_control_led2_bottom(false);
|
||||||
|
}
|
||||||
|
|
||||||
TIM_SetCounter(TIM3, 0);
|
TIM_SetCounter(TIM3, 0);
|
||||||
|
|
||||||
TIM_Cmd(TIM3, ENABLE);
|
TIM_Cmd(TIM3, ENABLE);
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "wx_handler.h"
|
#include "wx_handler.h"
|
||||||
|
|
||||||
|
#include "LedConfig.h"
|
||||||
|
|
||||||
#define BS TX20.BitSampler
|
#define BS TX20.BitSampler
|
||||||
#define BQ TX20.BitQueue
|
#define BQ TX20.BitQueue
|
||||||
#define QL TX20.QueueLenght
|
#define QL TX20.QueueLenght
|
||||||
|
@ -38,13 +40,7 @@ uint16_t tx20_current_direction;
|
||||||
|
|
||||||
#ifdef _METEO
|
#ifdef _METEO
|
||||||
void inline TX20BlinkLed(void) {
|
void inline TX20BlinkLed(void) {
|
||||||
if ((GPIOC->ODR & GPIO_ODR_ODR9) == GPIO_ODR_ODR9) {
|
led_flip_led2_botoom();
|
||||||
GPIOC->BSRR |= GPIO_BSRR_BR9;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
GPIOC->BSRR |= GPIO_BSRR_BS9;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -266,12 +262,8 @@ void TIM1_UP_TIM16_IRQHandler( void ) {
|
||||||
#elif TIMNUMBER == 2
|
#elif TIMNUMBER == 2
|
||||||
void TIM2_IRQHandler( void ) {
|
void TIM2_IRQHandler( void ) {
|
||||||
|
|
||||||
if ((GPIOC->ODR & GPIO_ODR_ODR9) == GPIO_ODR_ODR9) {
|
led_flip_led2_botoom();
|
||||||
GPIOC->BSRR |= GPIO_BSRR_BR9;
|
|
||||||
}
|
|
||||||
else if ((GPIOC->ODR & GPIO_ODR_ODR9) == 0) {
|
|
||||||
GPIOC->BSRR |= GPIO_BSRR_BS9;
|
|
||||||
}
|
|
||||||
|
|
||||||
TIM2->SR &= ~(1<<0);
|
TIM2->SR &= ~(1<<0);
|
||||||
tx20_batch();
|
tx20_batch();
|
||||||
|
@ -280,12 +272,8 @@ void TIM2_IRQHandler( void ) {
|
||||||
#elif TIMNUMBER == 3
|
#elif TIMNUMBER == 3
|
||||||
void TIM3_IRQHandler( void ) {
|
void TIM3_IRQHandler( void ) {
|
||||||
|
|
||||||
if ((GPIOC->ODR & GPIO_ODR_ODR9) == GPIO_ODR_ODR9) {
|
led_flip_led2_botoom();
|
||||||
GPIOC->BSRR |= GPIO_BSRR_BR9;
|
|
||||||
}
|
|
||||||
else if ((GPIOC->ODR & GPIO_ODR_ODR9) == 0) {
|
|
||||||
GPIOC->BSRR |= GPIO_BSRR_BS9;
|
|
||||||
}
|
|
||||||
|
|
||||||
TIM3->SR &= ~(1<<0);
|
TIM3->SR &= ~(1<<0);
|
||||||
tx20_batch();
|
tx20_batch();
|
||||||
|
@ -294,12 +282,8 @@ void TIM3_IRQHandler( void ) {
|
||||||
#elif TIMNUMBER == 4
|
#elif TIMNUMBER == 4
|
||||||
void TIM4_IRQHandler( void ) {
|
void TIM4_IRQHandler( void ) {
|
||||||
|
|
||||||
if ((GPIOC->ODR & GPIO_ODR_ODR9) == GPIO_ODR_ODR9) {
|
led_flip_led2_botoom();
|
||||||
GPIOC->BSRR |= GPIO_BSRR_BR9;
|
|
||||||
}
|
|
||||||
else if ((GPIOC->ODR & GPIO_ODR_ODR9) == 0) {
|
|
||||||
GPIOC->BSRR |= GPIO_BSRR_BS9;
|
|
||||||
}
|
|
||||||
|
|
||||||
TIM3->SR &= ~(1<<0);
|
TIM3->SR &= ~(1<<0);
|
||||||
tx20_batch();
|
tx20_batch();
|
||||||
|
|
Ładowanie…
Reference in New Issue