Hack: reenable cc2420 SFD interrupts after resyncing the DCO. The DCO code currently messes up the SFD interrupt settings.

This commit is contained in:
adamdunkels 2010-12-16 22:52:12 +00:00
parent 6a80106236
commit 37e65264a8

View file

@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* @(#)$Id: contiki-sky-main.c,v 1.84 2010/05/25 21:32:41 joxe Exp $ * @(#)$Id: contiki-sky-main.c,v 1.85 2010/12/16 22:52:12 adamdunkels Exp $
*/ */
#include <signal.h> #include <signal.h>
@ -201,6 +201,7 @@ main(int argc, char **argv)
leds_init(); leds_init();
leds_on(LEDS_RED); leds_on(LEDS_RED);
uart1_init(BAUD2UBR(115200)); /* Must come before first printf */ uart1_init(BAUD2UBR(115200)); /* Must come before first printf */
#if WITH_UIP #if WITH_UIP
slip_arch_init(BAUD2UBR(115200)); slip_arch_init(BAUD2UBR(115200));
@ -352,7 +353,7 @@ main(int argc, char **argv)
#if TIMESYNCH_CONF_ENABLED #if TIMESYNCH_CONF_ENABLED
timesynch_init(); timesynch_init();
timesynch_set_authority_level(rimeaddr_node_addr.u8[0]); timesynch_set_authority_level((rimeaddr_node_addr.u8[0] << 4) + 16);
#endif /* TIMESYNCH_CONF_ENABLED */ #endif /* TIMESYNCH_CONF_ENABLED */
#if WITH_UIP #if WITH_UIP
@ -426,12 +427,14 @@ main(int argc, char **argv)
#if DCOSYNCH_CONF_ENABLED #if DCOSYNCH_CONF_ENABLED
/* before going down to sleep possibly do some management */ /* before going down to sleep possibly do some management */
if (timer_expired(&mgt_timer)) { if(timer_expired(&mgt_timer)) {
watchdog_periodic();
timer_reset(&mgt_timer); timer_reset(&mgt_timer);
msp430_sync_dco(); msp430_sync_dco();
cc2420_arch_sfd_init();
} }
#endif #endif
/* Re-enable interrupts and go to sleep atomically. */ /* Re-enable interrupts and go to sleep atomically. */
ENERGEST_OFF(ENERGEST_TYPE_CPU); ENERGEST_OFF(ENERGEST_TYPE_CPU);
ENERGEST_ON(ENERGEST_TYPE_LPM); ENERGEST_ON(ENERGEST_TYPE_LPM);