Im trying to implement a simple sleep mode with interrupt wake up on my Teensy 3.2 but when i try to compile i get this error:
D:\_a\Arduino\hardware\teensy\avr\cores\teensy3/avr/sleep.h:36:23: error: expected primary-expression before 'asm'
#define sleep_cpu() (asm("wfi"))
^
D:\_a\Arduino\hardware\teensy\avr\cores\teensy3/avr/sleep.h:38:23: note: in expansion of macro 'sleep_cpu'
#define sleep_mode() sleep_cpu()
^
d:\Users\SIMETRI_DEV\Documents\Arduino\InterSleep\InterSleep.ino:26:3: note: in expansion of macro 'sleep_mode'
sleep_mode();
^
D:\_a\Arduino\hardware\teensy\avr\cores\teensy3/avr/sleep.h:36:23: error: expected ')' before 'asm'
#define sleep_cpu() (asm("wfi"))
^
D:\_a\Arduino\hardware\teensy\avr\cores\teensy3/avr/sleep.h:38:23: note: in expansion of macro 'sleep_cpu'
#define sleep_mode() sleep_cpu()
^
d:\Users\SIMETRI_DEV\Documents\Arduino\InterSleep\InterSleep.ino:26:3: note: in expansion of macro 'sleep_mode'
sleep_mode();
^
Error compiling for board Teensy 3.2 / 3.1.
And here is my code:
#include <avr/sleep.h>
#include <avr/interrupt.h>
#define SWITCH 14
#define LED 15
#define LED2 16
void func(void)
{
digitalWrite(LED, HIGH);
//sleep_disable();
}
void setup() {
pinMode(SWITCH, INPUT);
pinMode(LED, OUTPUT);
pinMode(LED2, OUTPUT);
set_sleep_mode(SLEEP_MODE_IDLE);
sleep_enable();
attachInterrupt(SWITCH, func, LOW);
}
void loop() {
sleep_mode();
digitalWrite(LED, LOW);
digitalWrite(LED2, HIGH);
delay(1000);
digitalWrite(LED2, LOW);
delay(1000);
}