rf230bb: Handle all IRQ flags in one ISR call.

Modified the if/elseif/elseif/.../else block in ISR into multiple if
blocks in order to handle multiple interrupts happening simultaneously.

Signed-off-by: Joakim Gebart <joakim.gebart@eistec.se>
This commit is contained in:
Joakim Gebart 2014-10-28 14:42:36 +01:00
parent 6fb7dd238e
commit f943eb9a27

View file

@ -751,7 +751,8 @@ HAL_RF230_ISR()
#endif #endif
#endif #endif
} else if (interrupt_source & HAL_TRX_END_MASK){ }
if (interrupt_source & HAL_TRX_END_MASK){
INTERRUPTDEBUG(11); INTERRUPTDEBUG(11);
state = hal_subregister_read(SR_TRX_STATUS); state = hal_subregister_read(SR_TRX_STATUS);
@ -778,16 +779,20 @@ HAL_RF230_ISR()
} }
} else if (interrupt_source & HAL_TRX_UR_MASK){ }
if (interrupt_source & HAL_TRX_UR_MASK){
INTERRUPTDEBUG(13); INTERRUPTDEBUG(13);
; ;
} else if (interrupt_source & HAL_PLL_UNLOCK_MASK){ }
if (interrupt_source & HAL_PLL_UNLOCK_MASK){
INTERRUPTDEBUG(14); INTERRUPTDEBUG(14);
; ;
} else if (interrupt_source & HAL_PLL_LOCK_MASK){ }
if (interrupt_source & HAL_PLL_LOCK_MASK){
INTERRUPTDEBUG(15); INTERRUPTDEBUG(15);
; ;
} else if (interrupt_source & HAL_BAT_LOW_MASK){ }
if (interrupt_source & HAL_BAT_LOW_MASK){
/* Disable BAT_LOW interrupt to prevent endless interrupts. The interrupt */ /* Disable BAT_LOW interrupt to prevent endless interrupts. The interrupt */
/* will continously be asserted while the supply voltage is less than the */ /* will continously be asserted while the supply voltage is less than the */
/* user-defined voltage threshold. */ /* user-defined voltage threshold. */
@ -796,9 +801,6 @@ HAL_RF230_ISR()
hal_register_write(RG_IRQ_MASK, trx_isr_mask); hal_register_write(RG_IRQ_MASK, trx_isr_mask);
INTERRUPTDEBUG(16); INTERRUPTDEBUG(16);
; ;
} else {
INTERRUPTDEBUG(99);
;
} }
} }
#endif /* defined(__AVR_ATmega128RFA1__) */ #endif /* defined(__AVR_ATmega128RFA1__) */