Commit 60d9448a authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

MSP430: Avoid possible race conditions when going to sleep

parent 17831e69
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -109,9 +109,8 @@ void Arch::delay_ms(unsigned char const ms)
void Arch::idle_loop(void)
{
	while (1) {
		__eint();
		asm volatile("nop");
		__bis_SR_register(LPM2_bits);
		__bis_SR_register(GIE | LPM2_bits);
		asm volatile("nop");
		__dint();
#if defined(WITH_LOOP)
@@ -128,9 +127,8 @@ void Arch::idle_loop(void)

void Arch::idle(void)
{
	__eint();
	asm volatile("nop");
	__bis_SR_register(LPM2_bits);
	__bis_SR_register(GIE | LPM2_bits);
	asm volatile("nop");
	__dint();
#ifdef WITH_WAKEUP
@@ -144,7 +142,7 @@ Arch arch;

#include "driver/uptime.h"

__attribute__((interrupt(TIMER1_A1_VECTOR))) __attribute__((wakeup)) void handle_timer0_overflow()
__attribute__((interrupt(TIMER1_A1_VECTOR))) __attribute__((wakeup)) void handle_timer1_overflow()
{
	if (TA1IV == 0x0e) {
#ifdef WITH_LOOP