Conditions allow code to be executed based on either the digital or analogue input to a pin.
Note that conditions are tested each millisecond intervals, when a condition is triggered the code will be executed after any current LIO or fileaccess code has completed.
(pin_goes_low <pin> <code> ...)
(pin_goes_high <pin> <code> ...)
(pin_changes <pin> <code> ...)
When the given pin goes low, high or changes state respectively the remaining arguments are evaluated.
(pinmode 0 HIGH) (pinmode 1 OUT) (pin_goes_low 0 (keyboard "button pressed!") (setpin 1 1))
(adc_goes_above <pin> <trigger_value> [reset_value] <code> ...)
(adc_goes_below <pin> <trigger_value> [reset_value] <code> ...)
When the adc value goes above the trigger value (0..1024) the remaining arguments are evaluated. If the third argument is a non expression/list it is treated as a reset value - the condition will not trigger again until the adc value passes below/above that value.
(pinmode 11 ADC) (pin_goes_below 100 800 (keyboard "pin 11 at " (get_adc 11)))