#include "apps.h"
#include "glitch.h"
+void led_init()
+{
+ PLEDDIR |= PLEDPIN;
+ #ifdef PLED2OUT
+ PLED2DIR |= PLED2PIN;
+ #endif
+ #ifdef PLED3OUT
+ PLED3DIR |= PLED3PIN;
+ #endif
+}
+
+//TODO define differently if needed for telos/apimote
+void led_on()
+{
+ PLEDOUT |= PLEDPIN;
+}
+void led_off()
+{
+ PLEDOUT&=~PLEDPIN;
+}
+void led_toggle()
+{
+ PLEDOUT ^= PLEDPIN;
+}
+
+//LED2 and LED3 are only used by the telosb and apimote for now
+void led2_on()
+{
+#ifdef PLED2OUT
+ PLED2OUT &= ~PLED2PIN;
+#endif
+}
+void led2_off()
+{
+#ifdef PLED2OUT
+ PLED2OUT |= PLED2PIN;
+#endif
+}
+void led3_on()
+{
+#ifdef PLED3OUT
+ PLED3OUT &= ~PLED3PIN;
+#endif
+}
+void led3_off()
+{
+#ifdef PLED3OUT
+ PLED3OUT |= PLED3PIN;
+#endif
+}
//! Initialize MSP430 registers and all that jazz.
void msp430_init(){
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
//LED out and on.
- PLEDDIR |= PLEDPIN;
- PLEDOUT &= ~PLEDPIN;
-
+ led_init();
+ led_off();
/* P5.0 out and low; this is chosen for the PIC app (in which P5.0
is !MCLR) to ensure that an attached PIC chip, if present, is
#endif
/** FIXME
-
+
This part is really ugly. GSEL (P5.7) must be high to select
normal voltage, but a lot of applications light to swing it low
to be a nuissance. To get around this, we assume that anyone
with a glitching FET will also have a DAC, then we set that DAC
to a high voltage.
-
+
At some point, each target must be sanitized to show that it
doesn't clear P5OUT or P5DIR.
*/