Using Sleep 0 on a 20X2

Will the code shown below work and will the interrupt wake the Picaxe from Sleep 0

Code:
[color=Navy]#Picaxe [/color][color=Black]20X2[/color]
[color=Green]'*** Variables ***[/color]
[color=Blue]Symbol [/color][color=Black]DLY[/color][color=DarkCyan]=[/color][color=Purple]W0[/color]
[color=Blue]Symbol [/color][color=Black]Pulse_dur[/color][color=DarkCyan]=[/color][color=Purple]W1[/color]
[color=Blue]Symbol [/color][color=Black]N[/color][color=DarkCyan]=[/color][color=Purple]b4[/color]
[color=Green]'*** Pins ***[/color]
[color=Blue]Symbol [/color][color=Black]Merc[/color][color=DarkCyan]=[/color][color=Purple]PinC.4[/color]
[color=Black]Pulse_dur[/color][color=DarkCyan]=[/color][color=Navy]1000
      [/color][color=Blue]setint [/color][color=Navy]%10000[/color][color=Black],[/color][color=Navy]%10000[/color]
[color=Black]Waiting:
      [/color][color=Blue]Sleep [/color][color=Navy]0[/color]
[color=Blue]Interrupt:
      [/color][color=Black]DLY[/color][color=DarkCyan]=[/color][color=Navy]0
      [/color][color=Blue]If [/color][color=Purple]PinC.2[/color][color=DarkCyan]=[/color][color=Navy]1 [/color][color=Blue]then let [/color][color=Black]Dly[/color][color=DarkCyan]=[/color][color=Navy]3    [/color][color=Green]'1.5 minutes
      [/color][color=Blue]endif
      If [/color][color=Purple]PinC.3[/color][color=DarkCyan]=[/color][color=Navy]1 [/color][color=Blue]then let [/color][color=Black]Dly[/color][color=DarkCyan]=[/color][color=Navy]6    [/color][color=Green]'3.0 imutes
      [/color][color=Blue]endif
      High C.0
      Low C.1
      Pause [/color][color=Black]Pulse_dur
      [/color][color=Blue]low C.0[/color][color=Black],[/color][color=Blue]C.1
      For [/color][color=Black]N[/color][color=DarkCyan]=[/color][color=Navy]1 [/color][color=Blue]to [/color][color=Black]DLY
      [/color][color=Blue]Pause [/color][color=Navy]30000
      [/color][color=Blue]Next [/color][color=Black]N
      [/color][color=Blue]low C.0
      high C.1
      Pause [/color][color=Black]Pulse_dur
      [/color][color=Blue]Pause [/color][color=Navy]1000
      [/color][color=Blue]setint [/color][color=Navy]%10000[/color][color=Black],[/color][color=Navy]%10000
      [/color][color=Blue]Goto [/color][color=Black]Waiting[/color]
[color=Blue]Return[/color]
 

hippy

Technical Support
Staff member
No and no.

"On X2 parts ‘sleep 0’ puts the microcontroller into permanent sleep - it does not wake every 2.1 seconds. The microcontroller is only woken by a hardware interrupt (e.g. hint pin change) or hard-reset".

You need to enable HINT pin use to create a hardware interrupt which brings it out of the sleeping state.
 
Top