[color=Green]'#####################################################################
'## PICAXE 20M2 chip, and AXE133Y OLED display.
'## Subroutine gets data from an IR CLICKER (using SONY TV '## code 5001);
'## corrects the offset from the numeric keys, & shows data on the OLED display.
'## A "Do loop" pauses until the clicker key is released. Note: My clicker
'## stops xmitting after about 4 seconds; then the count goes to zero
'## (this acts same as releasing the key).
'## This is a good way to see the values returned from an IR clicker.
'#####################################################################[/color]
[color=Blue]symbol ir_clicker[/color][color=DarkCyan]=[/color][color=Blue]C.0 [/color][color=Green]'B.0 (pin 18 on 20m2)[/color]
[color=Blue]symbol [/color][color=Purple]irdata[/color][color=DarkCyan]=[/color][color=Purple]b4 [/color][color=Green]'variable b4[/color]
[color=Blue]symbol oled[/color][color=DarkCyan]=[/color][color=Blue]B.7[/color]
[color=Navy]#slot 0
#picaxe [/color][color=Black]20m2[/color]
[color=Navy]#no_data [/color][color=Green]'Prevents resetting EPROM data (if there is any).[/color]
[color=Blue]pause [/color][color=Navy]1000 [/color][color=Green]'Pause to initialize system.[/color]
[color=Blue]serout oled[/color][color=Black],[/color][color=Blue]n2400[/color][color=Black],[/color][color=Blue]([/color][color=Navy]254[/color][color=Black],[/color][color=Navy]1[/color][color=Blue])[/color][color=Black]:[/color][color=Blue]pause [/color][color=Navy]30 [/color][color=Green]'Clear display[/color]
[color=Blue]serout oled[/color][color=Black],[/color][color=Blue]n2400[/color][color=Black],[/color][color=Blue]([/color][color=Navy]254[/color][color=Black],[/color][color=Navy]128[/color][color=Black],[/color][color=Red]" USE CLICKER "[/color][color=Blue])[/color]
[color=Black]test1:
[/color][color=Blue]call [/color][color=Black]get_1IR
[/color][color=Blue]goto [/color][color=Black]test1
get_1IR: [/color][color=Green]'* Get data from IR clicker & correct numeric key values.
[/color][color=Blue]irin C.0[/color][color=Black],[/color][color=Purple]irdata [/color][color=Green]'Get data from the IR clicker on C.0 & put into variable b4.
[/color][color=Blue]do[/color][color=Black]:[/color][color=Blue]let [/color][color=Purple]b5[/color][color=DarkCyan]=[/color][color=Navy]0[/color][color=Black]:[/color][color=Blue]count C.0[/color][color=Black],[/color][color=Navy]50[/color][color=Black],[/color][color=Purple]b5[/color][color=Black]:[/color][color=Blue]loop until [/color][color=Purple]b5[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Green]'Pauses until key is released.
[/color][color=Blue]if [/color][color=Purple]irdata[/color][color=DarkCyan]=<[/color][color=Navy]9 [/color][color=Blue]then let [/color][color=Purple]irdata[/color][color=DarkCyan]=[/color][color=Purple]irdata[/color][color=DarkCyan]+[/color][color=Navy]1[/color][color=Black]:[/color][color=Blue]endif [/color][color=Green]'Correct numeric keys 1 thru 9.
[/color][color=Blue]if [/color][color=Purple]irdata[/color][color=DarkCyan]=[/color][color=Navy]10 [/color][color=Blue]then let [/color][color=Purple]irdata[/color][color=DarkCyan]=[/color][color=Navy]0[/color][color=Black]:[/color][color=Blue]endif [/color][color=Green]'Correct the 0 key.
[/color][color=Blue]serout oled[/color][color=Black],[/color][color=Blue]n2400[/color][color=Black],[/color][color=Blue]([/color][color=Navy]254[/color][color=Black],[/color][color=Navy]1[/color][color=Blue])[/color][color=Black]:[/color][color=Blue]pause [/color][color=Navy]30 [/color][color=Green]'Clear OLED
[/color][color=Blue]serout oled[/color][color=Black],[/color][color=Blue]n2400[/color][color=Black],[/color][color=Blue]([/color][color=Navy]254[/color][color=Black],[/color][color=Navy]128[/color][color=Black],[/color][color=Red]"IR DATA WAS: "[/color][color=Black],#[/color][color=Purple]irdata[/color][color=Blue]) [/color][color=Green]'Show key data on OLED.
'debug 'NOTE: Comment out DEBUG commands when simulating with PE6.
[/color][color=Blue]return[/color]