fixed volatile status

This commit is contained in:
Antoine Drouin
2010-06-17 13:44:06 +00:00
parent 37cdf320bc
commit 977e2e5ae2
4 changed files with 10 additions and 16 deletions
@@ -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;
}
+1 -1
View File
@@ -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();
}
+1 -1
View File
@@ -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;
+7 -13
View File
@@ -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));
}