mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-06 07:53:43 +08:00
fixed volatile status
This commit is contained in:
@@ -92,11 +92,11 @@ void overo_link_arch_prepare_next_transfert(void) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
void dma1_c2_irq_handler(void) {
|
||||
|
||||
DMA_ITConfig(DMA1_Channel2, DMA_IT_TC, DISABLE);
|
||||
|
||||
overo_link.status = DATA_AVAILABLE;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
struct LisaOveroLink overo_link;
|
||||
|
||||
void overo_link_init(void) {
|
||||
overo_link.status = LOST;
|
||||
overo_link.status = IDLE;
|
||||
overo_link_arch_init();
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ enum LisaOveroLinkStatus {IDLE, BUSY, DATA_AVAILABLE, LOST};
|
||||
#define OVERO_LINK_TIMEOUT 10
|
||||
|
||||
struct LisaOveroLink {
|
||||
uint8_t status;
|
||||
volatile uint8_t status;
|
||||
uint8_t msg_in[sizeof(union OVERO_LINK_MSG_UNION)];
|
||||
uint8_t msg_out[sizeof(union OVERO_LINK_MSG_UNION)];
|
||||
uint8_t timeout;
|
||||
|
||||
@@ -43,12 +43,11 @@ int main(void) {
|
||||
hw_init();
|
||||
sys_time_init();
|
||||
overo_link_init();
|
||||
|
||||
while (1) {
|
||||
|
||||
while (1) {
|
||||
if (sys_time_periodic())
|
||||
main_periodic();
|
||||
|
||||
main_event();
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -56,23 +55,17 @@ int main(void) {
|
||||
|
||||
|
||||
static inline void main_periodic( void ) {
|
||||
// LED_TOGGLE(1);
|
||||
|
||||
// uart2_transmit('a');
|
||||
// uart2_transmit('b');
|
||||
// uart2_transmit('b');
|
||||
// uart2_transmit('\n');
|
||||
|
||||
OveroLinkPeriodic(on_overo_link_lost);
|
||||
|
||||
RunOnceEvery(10,{ LED_PERIODIC();});
|
||||
|
||||
}
|
||||
|
||||
static inline void main_event( void ) {
|
||||
|
||||
OveroLinkEvent(on_overo_msg_received);
|
||||
// send previously received msg
|
||||
memcpy(overo_link.msg_out, &my_msg, sizeof(my_msg));
|
||||
// store newly received message
|
||||
memcpy(&my_msg, overo_link.msg_in, sizeof(my_msg));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -82,5 +75,6 @@ static inline void on_overo_link_lost(void) {
|
||||
|
||||
static inline void on_overo_msg_received(void) {
|
||||
|
||||
memcpy(overo_link.msg_out, overo_link.msg_in, sizeof(struct AutopilotMessageFoo));
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user