External interrupts on SLEEP_MODE_PWR_DOWN

Hi, I'm new on this, I have a generic arduino mini pro (ATMEGA 328, 16 MHZ)

I know this may be silly, but I really don't find the answer anywhere. In

https://playground.arduino.cc/Learning/ArduinoSleepCode

At the beginning, it states:

"When the arduino is in SLEEP_MODE_PWR_DOWN the only way to wake it is with either a watchdog timer interrupt, a level interrupt on pins 2 or 3, or a Pin Change interrupt"

I need to trigger an interrupt on a positive signal, so I was thinking I could use either Change, or Rising.

But then, in the examples below, it says:
"

  • C Trigger mode of the interrupt pin. can be:
  • LOW a low level trigger
  • CHANGE a change in level trigger
  • RISING a rising edge of a level trigger
  • FALLING a falling edge of a level trigger
  • In all but the IDLE sleep modes only LOW can be used. "

I was looking on google but again I see little to no reference. It's critical to me to save as much power as possible since I'm using batteries. And I have another question, is it possible to declare a pin interrupt as "INPUT PULLUP"? I mean, I know many things get turned off on sleep mode so I'm not sure if the pull up resistor still works for an interrupt pin.

I know I could solve everything with an inverted signal, but since I'm not using custom PCB's, It would be much better if I can trigger the interruption with a positive signal purely by software.

Many thanks

The definitive guide to arduino power saving is here: Gammon Forum : Electronics : Microprocessors : Power saving techniques for microprocessors

There is apparently an error in the datasheet for the Atmega328p which implies that a wakeup from sleep mode using an external interrupt (pins 2 or 3) must be a level change to LOW. An edge trigger also works for a ATMEGA328P (but not, incidentally, for an ATTINYxx).

I'm looking for the reference now. Nick Gammon confirmed this with Atmel (IIRC).

If you have problems with the external interrupt, you can also use a pin change interrupt.

Edit:
Here is the reference: Gammon Forum : Electronics : Microprocessors : Interrupts

Tip:
I received this confirmation from Atmel that the datasheet is wrong about only LOW interrupts waking the processor.

Quote:

Commented by Manoraj Gnanadhas (Atmel)
2015-01-20 06:23:36 GMT
[Recipients: Nick Gammon]

Hello Nick,

Our design team has confirmed that “Note-3 mentioned under Table 10-1” is a datasheet bug. So you can use any type of interrupt (Rising edge/ Falling edge / Low level / Any logical change) to wake up from sleep mode. Sorry for the inconvenience caused.

Best Regards,
Manoraj Gnanadhas

Thus, all interrupt types will wake the processor.

Thank you very much it is just what I needed!