How sefu202/io_board works
IO_Board is AVR firmware for an industrial-style I/O board. Its visible runtime starts by initializing board I/O, timing, communications, and sensors, then repeatedly updates RS-485 communications. The component names indicate distinct analog/digital I/O, PWM/stepper, environmental, light, and wind functions. Sampled source confirms the main loop, wind measurement’s DI/tick reads, and BH1750’s I²C transactions; wiring among unsampled modules is intentionally left out. The tree and excerpts provide no README-level product description.
Main entry points: main.c Firmware entry · Windsensor.c Wind measurement · AI.c Analog inputs · bh1750.c Light sensor
Components 19
Runtime and communications
- Firmware entry
IO_Board/main.c - RS-485 update
IO_Board/Comm/RS485.c - USART transport
IO_Board/Comm/usart.c - CRC-16
IO_Board/Comm/CRC16.c - FIFO buffer
IO_Board/Comm/fifo.c - Process image
IO_Board/ProcessImage.c - System tick
IO_Board/SysTick.c
Board I/O
- Analog inputs
IO_Board/AI.c - ADC
IO_Board/adc.c - Digital inputs
IO_Board/DI.c - Digital outputs
IO_Board/DO.c - PWM outputs
IO_Board/PWM.c - Stepper control
IO_Board/Step1.c
Sensors
- Wind measurement
IO_Board/Windsensor/Windsensor.c - Environmental sensor
IO_Board/EnvSensor/EnvSensor.c - BME280 driver
IO_Board/EnvSensor/bme280.c - Light sensor
IO_Board/LightSensor/bh1750.c
Device buses
- I²C master
IO_Board/Fleury_twimaster.c
Other components
- RS-485 host
Connections 16
- Firmware entry → RS-485 update: updates repeatedly
- Firmware entry → System tick: initializes
- Firmware entry → Digital outputs: initializes
- Firmware entry → Digital inputs: initializes
- Firmware entry → Analog inputs: initializes
- Firmware entry → Stepper control: initializes
- Firmware entry → PWM outputs: initializes
- Firmware entry → Wind measurement: initializes
- Firmware entry → I²C master: initializes
- Firmware entry → Environmental sensor: initializes
- Firmware entry → Light sensor: initializes
- RS-485 host → RS-485 update: communicates over
- Wind measurement → Digital inputs: reads input
- Wind measurement → System tick: reads ticks
- Light sensor → I²C master: reads sensor
- Analog inputs → ADC: uses conversion