LambLisp 01 Red Fox Alpha
From AI to Actuator
Loading...
Searching...
No Matches

Functions

Sexpr_t mop3_cio_digitalRead (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_digitalWrite (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_pinMode (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_analogRead (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_analogWrite (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_delay_ms (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_delay_us (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_analogReadResolution (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_analogReference (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_analogWriteResolution (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_noTone (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_pulseIn (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_pulseInLong (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_shiftIn (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_shiftOut (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_tone (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_bit (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_bitClear (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_bitRead (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_bitSet (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_bitWrite (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_highByte (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_lowByte (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_attachInterrupt (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_detachInterrupt (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_digitalPinToInterrupt (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_interrupts (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t mop3_cio_noInterrupts (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)
Sexpr_t CommonIO_install_mop3 (Lamb &lamb, Sexpr_t sexpr, Sexpr_t env_exec)

Detailed Description

LambLisp GPIO & Basic I/O builtins.

Function Documentation

◆ mop3_cio_digitalRead()

Sexpr_t mop3_cio_digitalRead ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Read digital pin state; returns #t if HIGH, #f if LOW.

◆ mop3_cio_digitalWrite()

Sexpr_t mop3_cio_digitalWrite ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Write digital pin HIGH/LOW. Level is Scheme-truthy (only #f is LOW) with one pragmatic extension: a NUMERIC ZERO also drives LOW. So (digitalWrite p #f) and (digitalWrite p 0) both give LOW; (digitalWrite p #t) and (digitalWrite p 1) give HIGH.

◆ mop3_cio_pinMode()

Sexpr_t mop3_cio_pinMode ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Configure a pin as INPUT, INPUT_PULLUP, or OUTPUT.

◆ mop3_cio_analogRead()

Sexpr_t mop3_cio_analogRead ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Read analog pin; returns raw ADC integer value.

◆ mop3_cio_analogWrite()

Sexpr_t mop3_cio_analogWrite ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Write analog PWM value to pin.

◆ mop3_cio_delay_ms()

Sexpr_t mop3_cio_delay_ms ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Delay execution by the given number of milliseconds.

◆ mop3_cio_delay_us()

Sexpr_t mop3_cio_delay_us ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Delay execution by the given number of microseconds.

◆ mop3_cio_analogReadResolution()

Sexpr_t mop3_cio_analogReadResolution ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Set ADC resolution in bits (stub – platform-dependent).

◆ mop3_cio_analogReference()

Sexpr_t mop3_cio_analogReference ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Set ADC voltage reference (stub – platform-dependent).

◆ mop3_cio_analogWriteResolution()

Sexpr_t mop3_cio_analogWriteResolution ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Set DAC/PWM resolution in bits (stub – platform-dependent).

◆ mop3_cio_noTone()

Sexpr_t mop3_cio_noTone ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Stop tone generation on a pin (stub). noTone had a backend all along – both the vendor core and LLArduino provide it – so the stub was silently discarding a call that would have worked.

◆ mop3_cio_pulseIn()

Sexpr_t mop3_cio_pulseIn ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Measure a pulse on a pin; returns duration in microseconds (stub).

◆ mop3_cio_pulseInLong()

Sexpr_t mop3_cio_pulseInLong ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Like pulseIn but supports longer pulses (stub).

◆ mop3_cio_shiftIn()

Sexpr_t mop3_cio_shiftIn ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Shift in a byte of data one bit at a time (stub).

◆ mop3_cio_shiftOut()

Sexpr_t mop3_cio_shiftOut ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Shift out a byte of data one bit at a time (stub).

◆ mop3_cio_tone()

Sexpr_t mop3_cio_tone ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Generate a square wave tone on a pin at the given frequency and optional duration (ms).

◆ mop3_cio_bit()

Sexpr_t mop3_cio_bit ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Return a bitmask with only bit n set (stub). These seven were registered but returned #UNDEF on EVERY target, including the ESP32 boards – callable, documented, and silently useless. They are pure arithmetic with no hardware behind them, so there was never a platform reason for the stub. Found by the LLArduino conformance suite on its first run. DIVERGENCE FROM ARDUINO, STATED: Arduino's bitSet/bitClear/bitWrite are MACROS that MUTATE their first argument in place. Scheme has no integer to mutate, so these RETURN the new value and the caller rebinds. Same result, different shape; a sketch ported verbatim must assign.

◆ mop3_cio_bitClear()

Sexpr_t mop3_cio_bitClear ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Clear a specific bit in an integer (stub).

◆ mop3_cio_bitRead()

Sexpr_t mop3_cio_bitRead ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Read a specific bit from an integer (stub).

◆ mop3_cio_bitSet()

Sexpr_t mop3_cio_bitSet ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Set a specific bit in an integer (stub).

◆ mop3_cio_bitWrite()

Sexpr_t mop3_cio_bitWrite ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Write a specific bit in an integer (stub).

◆ mop3_cio_highByte()

Sexpr_t mop3_cio_highByte ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Return the high byte of a two-byte integer (stub).

◆ mop3_cio_lowByte()

Sexpr_t mop3_cio_lowByte ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Return the low byte of a two-byte integer (stub).

◆ mop3_cio_attachInterrupt()

Sexpr_t mop3_cio_attachInterrupt ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Attach an ISR to a digital pin interrupt (stub).

◆ mop3_cio_detachInterrupt()

Sexpr_t mop3_cio_detachInterrupt ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Detach the ISR from a digital pin interrupt (stub).

◆ mop3_cio_digitalPinToInterrupt()

Sexpr_t mop3_cio_digitalPinToInterrupt ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Return the interrupt number for a given digital pin (stub).

◆ mop3_cio_interrupts()

Sexpr_t mop3_cio_interrupts ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Re-enable interrupts globally (stub).

◆ mop3_cio_noInterrupts()

Sexpr_t mop3_cio_noInterrupts ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

Disable interrupts globally (stub).

◆ CommonIO_install_mop3()

Sexpr_t CommonIO_install_mop3 ( Lamb & lamb,
Sexpr_t sexpr,
Sexpr_t env_exec )

s + ascii.dec(), never d, for an LL_int32 – int32_t is long on the xtensa toolchain and int on x86-64, so a fixed specifier is UB on one of them.