From ade3b269426b19fb18e29aaa78d20e89aa44c8d0 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Wed, 15 Apr 2026 11:34:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B5=D1=80=D1=8B=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE?= =?UTF-8?q?=20gpio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 0 .gitignore | 1 + COPYING.LESSER | 0 INSTALL | 0 People | 0 README.md | 0 VERSION | 0 debian-template/wiringPi/control_template | 0 debian/.gitignore | 0 debian/changelog | 0 debian/compat | 0 debian/control | 0 debian/copyright | 0 debian/libwiringpi-dev.dirs | 0 debian/libwiringpi-dev.install | 0 debian/libwiringpi2.install | 0 debian/libwiringpi2.shlibs | 0 debian/rules | 0 debian/wiringpi.dirs | 0 debian/wiringpi.install | 0 devLib/Makefile | 0 devLib/ds1302.c | 0 devLib/ds1302.h | 0 devLib/font.h | 0 devLib/gertboard.c | 0 devLib/gertboard.h | 0 devLib/lcd.c | 0 devLib/lcd.h | 0 devLib/lcd128x64.c | 0 devLib/lcd128x64.h | 0 devLib/maxdetect.c | 0 devLib/maxdetect.h | 0 devLib/piFace.c | 0 devLib/piFace.h | 0 devLib/piFaceOld.c | 0 devLib/piGlow.c | 0 devLib/piGlow.h | 0 devLib/piNes.c | 0 devLib/piNes.h | 0 devLib/scrollPhat.c | 0 devLib/scrollPhat.h | 0 devLib/scrollPhatFont.h | 0 documentation/deutsch/functions.md | 0 documentation/english/functions.md | 0 examples/COPYING.LESSER | 0 examples/Gertboard/7segments.c | 0 examples/Gertboard/Makefile | 0 examples/Gertboard/buttons.c | 0 examples/Gertboard/gertboard.c | 0 examples/Gertboard/record.c | 0 examples/Gertboard/temperature.c | 0 examples/Gertboard/voltmeter.c | 0 examples/Gertboard/vumeter.c | 0 examples/Makefile | 3 +- examples/PiFace/Makefile | 0 examples/PiFace/blink.c | 0 examples/PiFace/buttons.c | 0 examples/PiFace/ladder.c | 0 examples/PiFace/metro.c | 0 examples/PiFace/motor.c | 0 examples/PiFace/reaction.c | 0 examples/PiGlow/Makefile | 0 examples/PiGlow/piGlow0.c | 0 examples/PiGlow/piGlow1.c | 0 examples/PiGlow/piglow.c | 0 examples/README.TXT | 0 examples/blink-thread.c | 0 examples/blink.c | 0 examples/blink.rtb | 0 examples/blink.sh | 0 examples/blink12.c | 0 examples/blink12drcs.c | 0 examples/blink6drcs.c | 0 examples/blink8-drcn.c | 0 examples/blink8.c | 0 examples/clock.c | 0 examples/delayTest.c | 0 examples/ds1302.c | 0 examples/gpio-interrupt.c | 113 ++++++++ examples/header.h | 0 examples/isr-osc.c | 0 examples/isr.c | 0 examples/isr3.c | 0 examples/isr_debounce.c | 0 examples/lcd-adafruit.c | 0 examples/lcd.c | 0 examples/lowPower.c | 0 examples/max31855.c | 0 examples/nes.c | 0 examples/okLed.c | 0 examples/pwm.c | 0 examples/q2w/Makefile | 0 examples/q2w/binary.c | 0 examples/q2w/blink-io.c | 0 examples/q2w/blink.c | 0 examples/q2w/blink.sh | 0 examples/q2w/bright.c | 0 examples/q2w/button.c | 0 examples/q2w/volts.c | 0 examples/rht03.c | 0 examples/scrollPhat/Makefile | 0 examples/scrollPhat/scphat.c | 0 examples/scrollPhat/test.c | 0 examples/serialRead.c | 0 examples/serialTest.c | 0 examples/servo.c | 0 examples/softPwm.c | 0 examples/softTone.c | 0 examples/speed.c | 0 examples/spiSpeed.c | 0 examples/wfi.c | 5 +- gpio/COPYING.LESSER | 0 gpio/Makefile | 0 gpio/gpio.1 | 0 gpio/gpio.c | 0 gpio/readall.c | 0 gpio/test/pintest.sh | 0 pins/Makefile | 0 pins/pins.pdf | Bin pins/pins.tex | 0 version.h | 0 wiringPi/COPYING.LESSER | 0 wiringPi/Makefile | 0 wiringPi/WiringpiV1.c | 0 wiringPi/ads1115.c | 0 wiringPi/ads1115.h | 0 wiringPi/bmp180.c | 0 wiringPi/bmp180.h | 0 wiringPi/drcNet.c | 0 wiringPi/drcNet.h | 0 wiringPi/drcSerial.c | 0 wiringPi/drcSerial.h | 0 wiringPi/ds18b20.c | 0 wiringPi/ds18b20.h | 0 wiringPi/gtest/.gitignore | 0 wiringPi/gtest/Makefile | 0 wiringPi/gtest/README.md | 0 wiringPi/gtest/run_isr.cpp | 0 wiringPi/gtest/test_isr_both.cpp | 0 .../test_isr_conflict_between_processes.cpp | 0 wiringPi/gtest/test_isr_falling.cpp | 0 wiringPi/gtest/test_isr_restart.cpp | 0 wiringPi/gtest/test_isr_restart2.cpp | 0 wiringPi/gtest/test_isr_rising.cpp | 0 wiringPi/gtest/test_isr_rising2.cpp | 0 wiringPi/htu21d.c | 0 wiringPi/htu21d.h | 0 wiringPi/max31855.c | 0 wiringPi/max31855.h | 0 wiringPi/max5322.c | 0 wiringPi/max5322.h | 0 wiringPi/mcp23008.c | 0 wiringPi/mcp23008.h | 0 wiringPi/mcp23016.c | 0 wiringPi/mcp23016.h | 0 wiringPi/mcp23016reg.h | 0 wiringPi/mcp23017.c | 0 wiringPi/mcp23017.h | 0 wiringPi/mcp23s08.c | 0 wiringPi/mcp23s08.h | 0 wiringPi/mcp23s17.c | 0 wiringPi/mcp23s17.h | 0 wiringPi/mcp23x08.h | 0 wiringPi/mcp23x0817.h | 0 wiringPi/mcp3002.c | 0 wiringPi/mcp3002.h | 0 wiringPi/mcp3004.c | 0 wiringPi/mcp3004.h | 0 wiringPi/mcp3422.c | 0 wiringPi/mcp3422.h | 0 wiringPi/mcp4802.c | 0 wiringPi/mcp4802.h | 0 wiringPi/noMoreStatic | 0 wiringPi/pcf8574.c | 0 wiringPi/pcf8574.h | 0 wiringPi/pcf8591.c | 0 wiringPi/pcf8591.h | 0 wiringPi/piHiPri.c | 0 wiringPi/piThread.c | 0 wiringPi/pseudoPins.c | 0 wiringPi/pseudoPins.h | 0 wiringPi/rht03.c | 0 wiringPi/rht03.h | 0 wiringPi/sn3218.c | 0 wiringPi/sn3218.h | 0 wiringPi/softPwm.c | 0 wiringPi/softPwm.h | 0 wiringPi/softServo.c | 0 wiringPi/softServo.h | 0 wiringPi/softTone.c | 0 wiringPi/softTone.h | 0 wiringPi/sr595.c | 0 wiringPi/sr595.h | 0 wiringPi/test/Makefile | 0 wiringPi/test/wiringpi_i2c_test1_pcf8574.c | 0 wiringPi/test/wiringpi_piface_test1.c | 0 wiringPi/test/wiringpi_spi_test1_mcp3202.c | 0 wiringPi/test/wiringpi_test0_version.c | 0 wiringPi/test/wiringpi_test1_sysfs.c | 0 wiringPi/test/wiringpi_test2_sysfs.c | 0 wiringPi/test/wiringpi_test3_device_wpi.c | 0 wiringPi/test/wiringpi_test4_device_phys.c | 0 wiringPi/test/wiringpi_test5_default.c | 0 wiringPi/test/wiringpi_test61_isr2.c | 0 wiringPi/test/wiringpi_test62_isr_wpin.c | 0 wiringPi/test/wiringpi_test6_isr.c | 0 wiringPi/test/wiringpi_test7_bench.c | 0 wiringPi/test/wiringpi_test8_pwm.c | 0 wiringPi/test/wiringpi_test9_pwm.c | 0 wiringPi/test/wiringpi_xotest_test1_spi.c | 0 wiringPi/test/wpi_test.h | 0 wiringPi/wiringPi.c | 0 wiringPi/wiringPi.h | 0 wiringPi/wiringPiI2C.c | 0 wiringPi/wiringPiI2C.h | 0 wiringPi/wiringPiLegacy.c | 0 wiringPi/wiringPiLegacy.h | 0 wiringPi/wiringPiSPI.c | 0 wiringPi/wiringPiSPI.h | 0 wiringPi/wiringSerial.c | 0 wiringPi/wiringSerial.h | 0 wiringPi/wiringShift.c | 0 wiringPi/wiringShift.h | 0 wiringPi/wiringpiV1.c | 246 ++++++++++++++++++ wiringPi/wpiExtensions.c | 0 wiringPi/wpiExtensions.h | 0 wiringPiD/Makefile | 0 wiringPiD/daemonise.c | 0 wiringPiD/daemonise.h | 0 wiringPiD/drcNetCmd.h | 0 wiringPiD/network.c | 0 wiringPiD/network.h | 0 wiringPiD/runRemote.c | 0 wiringPiD/runRemote.h | 0 wiringPiD/wiringpid.c | 0 235 files changed, 366 insertions(+), 2 deletions(-) mode change 100644 => 100755 .github/workflows/build.yml mode change 100644 => 100755 .gitignore mode change 100644 => 100755 COPYING.LESSER mode change 100644 => 100755 INSTALL mode change 100644 => 100755 People mode change 100644 => 100755 README.md mode change 100644 => 100755 VERSION mode change 100644 => 100755 debian-template/wiringPi/control_template mode change 100644 => 100755 debian/.gitignore mode change 100644 => 100755 debian/changelog mode change 100644 => 100755 debian/compat mode change 100644 => 100755 debian/control mode change 100644 => 100755 debian/copyright mode change 100644 => 100755 debian/libwiringpi-dev.dirs mode change 100644 => 100755 debian/libwiringpi-dev.install mode change 100644 => 100755 debian/libwiringpi2.install mode change 100644 => 100755 debian/libwiringpi2.shlibs mode change 100644 => 100755 debian/rules mode change 100644 => 100755 debian/wiringpi.dirs mode change 100644 => 100755 debian/wiringpi.install mode change 100644 => 100755 devLib/Makefile mode change 100644 => 100755 devLib/ds1302.c mode change 100644 => 100755 devLib/ds1302.h mode change 100644 => 100755 devLib/font.h mode change 100644 => 100755 devLib/gertboard.c mode change 100644 => 100755 devLib/gertboard.h mode change 100644 => 100755 devLib/lcd.c mode change 100644 => 100755 devLib/lcd.h mode change 100644 => 100755 devLib/lcd128x64.c mode change 100644 => 100755 devLib/lcd128x64.h mode change 100644 => 100755 devLib/maxdetect.c mode change 100644 => 100755 devLib/maxdetect.h mode change 100644 => 100755 devLib/piFace.c mode change 100644 => 100755 devLib/piFace.h mode change 100644 => 100755 devLib/piFaceOld.c mode change 100644 => 100755 devLib/piGlow.c mode change 100644 => 100755 devLib/piGlow.h mode change 100644 => 100755 devLib/piNes.c mode change 100644 => 100755 devLib/piNes.h mode change 100644 => 100755 devLib/scrollPhat.c mode change 100644 => 100755 devLib/scrollPhat.h mode change 100644 => 100755 devLib/scrollPhatFont.h mode change 100644 => 100755 documentation/deutsch/functions.md mode change 100644 => 100755 documentation/english/functions.md mode change 100644 => 100755 examples/COPYING.LESSER mode change 100644 => 100755 examples/Gertboard/7segments.c mode change 100644 => 100755 examples/Gertboard/Makefile mode change 100644 => 100755 examples/Gertboard/buttons.c mode change 100644 => 100755 examples/Gertboard/gertboard.c mode change 100644 => 100755 examples/Gertboard/record.c mode change 100644 => 100755 examples/Gertboard/temperature.c mode change 100644 => 100755 examples/Gertboard/voltmeter.c mode change 100644 => 100755 examples/Gertboard/vumeter.c mode change 100644 => 100755 examples/Makefile mode change 100644 => 100755 examples/PiFace/Makefile mode change 100644 => 100755 examples/PiFace/blink.c mode change 100644 => 100755 examples/PiFace/buttons.c mode change 100644 => 100755 examples/PiFace/ladder.c mode change 100644 => 100755 examples/PiFace/metro.c mode change 100644 => 100755 examples/PiFace/motor.c mode change 100644 => 100755 examples/PiFace/reaction.c mode change 100644 => 100755 examples/PiGlow/Makefile mode change 100644 => 100755 examples/PiGlow/piGlow0.c mode change 100644 => 100755 examples/PiGlow/piGlow1.c mode change 100644 => 100755 examples/PiGlow/piglow.c mode change 100644 => 100755 examples/README.TXT mode change 100644 => 100755 examples/blink-thread.c mode change 100644 => 100755 examples/blink.c mode change 100644 => 100755 examples/blink.rtb mode change 100644 => 100755 examples/blink.sh mode change 100644 => 100755 examples/blink12.c mode change 100644 => 100755 examples/blink12drcs.c mode change 100644 => 100755 examples/blink6drcs.c mode change 100644 => 100755 examples/blink8-drcn.c mode change 100644 => 100755 examples/blink8.c mode change 100644 => 100755 examples/clock.c mode change 100644 => 100755 examples/delayTest.c mode change 100644 => 100755 examples/ds1302.c create mode 100755 examples/gpio-interrupt.c mode change 100644 => 100755 examples/header.h mode change 100644 => 100755 examples/isr-osc.c mode change 100644 => 100755 examples/isr.c mode change 100644 => 100755 examples/isr3.c mode change 100644 => 100755 examples/isr_debounce.c mode change 100644 => 100755 examples/lcd-adafruit.c mode change 100644 => 100755 examples/lcd.c mode change 100644 => 100755 examples/lowPower.c mode change 100644 => 100755 examples/max31855.c mode change 100644 => 100755 examples/nes.c mode change 100644 => 100755 examples/okLed.c mode change 100644 => 100755 examples/pwm.c mode change 100644 => 100755 examples/q2w/Makefile mode change 100644 => 100755 examples/q2w/binary.c mode change 100644 => 100755 examples/q2w/blink-io.c mode change 100644 => 100755 examples/q2w/blink.c mode change 100644 => 100755 examples/q2w/blink.sh mode change 100644 => 100755 examples/q2w/bright.c mode change 100644 => 100755 examples/q2w/button.c mode change 100644 => 100755 examples/q2w/volts.c mode change 100644 => 100755 examples/rht03.c mode change 100644 => 100755 examples/scrollPhat/Makefile mode change 100644 => 100755 examples/scrollPhat/scphat.c mode change 100644 => 100755 examples/scrollPhat/test.c mode change 100644 => 100755 examples/serialRead.c mode change 100644 => 100755 examples/serialTest.c mode change 100644 => 100755 examples/servo.c mode change 100644 => 100755 examples/softPwm.c mode change 100644 => 100755 examples/softTone.c mode change 100644 => 100755 examples/speed.c mode change 100644 => 100755 examples/spiSpeed.c mode change 100644 => 100755 examples/wfi.c mode change 100644 => 100755 gpio/COPYING.LESSER mode change 100644 => 100755 gpio/Makefile mode change 100644 => 100755 gpio/gpio.1 mode change 100644 => 100755 gpio/gpio.c mode change 100644 => 100755 gpio/readall.c mode change 100644 => 100755 gpio/test/pintest.sh mode change 100644 => 100755 pins/Makefile mode change 100644 => 100755 pins/pins.pdf mode change 100644 => 100755 pins/pins.tex mode change 100644 => 100755 version.h mode change 100644 => 100755 wiringPi/COPYING.LESSER mode change 100644 => 100755 wiringPi/Makefile mode change 100644 => 100755 wiringPi/WiringpiV1.c mode change 100644 => 100755 wiringPi/ads1115.c mode change 100644 => 100755 wiringPi/ads1115.h mode change 100644 => 100755 wiringPi/bmp180.c mode change 100644 => 100755 wiringPi/bmp180.h mode change 100644 => 100755 wiringPi/drcNet.c mode change 100644 => 100755 wiringPi/drcNet.h mode change 100644 => 100755 wiringPi/drcSerial.c mode change 100644 => 100755 wiringPi/drcSerial.h mode change 100644 => 100755 wiringPi/ds18b20.c mode change 100644 => 100755 wiringPi/ds18b20.h mode change 100644 => 100755 wiringPi/gtest/.gitignore mode change 100644 => 100755 wiringPi/gtest/Makefile mode change 100644 => 100755 wiringPi/gtest/README.md mode change 100644 => 100755 wiringPi/gtest/run_isr.cpp mode change 100644 => 100755 wiringPi/gtest/test_isr_both.cpp mode change 100644 => 100755 wiringPi/gtest/test_isr_conflict_between_processes.cpp mode change 100644 => 100755 wiringPi/gtest/test_isr_falling.cpp mode change 100644 => 100755 wiringPi/gtest/test_isr_restart.cpp mode change 100644 => 100755 wiringPi/gtest/test_isr_restart2.cpp mode change 100644 => 100755 wiringPi/gtest/test_isr_rising.cpp mode change 100644 => 100755 wiringPi/gtest/test_isr_rising2.cpp mode change 100644 => 100755 wiringPi/htu21d.c mode change 100644 => 100755 wiringPi/htu21d.h mode change 100644 => 100755 wiringPi/max31855.c mode change 100644 => 100755 wiringPi/max31855.h mode change 100644 => 100755 wiringPi/max5322.c mode change 100644 => 100755 wiringPi/max5322.h mode change 100644 => 100755 wiringPi/mcp23008.c mode change 100644 => 100755 wiringPi/mcp23008.h mode change 100644 => 100755 wiringPi/mcp23016.c mode change 100644 => 100755 wiringPi/mcp23016.h mode change 100644 => 100755 wiringPi/mcp23016reg.h mode change 100644 => 100755 wiringPi/mcp23017.c mode change 100644 => 100755 wiringPi/mcp23017.h mode change 100644 => 100755 wiringPi/mcp23s08.c mode change 100644 => 100755 wiringPi/mcp23s08.h mode change 100644 => 100755 wiringPi/mcp23s17.c mode change 100644 => 100755 wiringPi/mcp23s17.h mode change 100644 => 100755 wiringPi/mcp23x08.h mode change 100644 => 100755 wiringPi/mcp23x0817.h mode change 100644 => 100755 wiringPi/mcp3002.c mode change 100644 => 100755 wiringPi/mcp3002.h mode change 100644 => 100755 wiringPi/mcp3004.c mode change 100644 => 100755 wiringPi/mcp3004.h mode change 100644 => 100755 wiringPi/mcp3422.c mode change 100644 => 100755 wiringPi/mcp3422.h mode change 100644 => 100755 wiringPi/mcp4802.c mode change 100644 => 100755 wiringPi/mcp4802.h mode change 100644 => 100755 wiringPi/noMoreStatic mode change 100644 => 100755 wiringPi/pcf8574.c mode change 100644 => 100755 wiringPi/pcf8574.h mode change 100644 => 100755 wiringPi/pcf8591.c mode change 100644 => 100755 wiringPi/pcf8591.h mode change 100644 => 100755 wiringPi/piHiPri.c mode change 100644 => 100755 wiringPi/piThread.c mode change 100644 => 100755 wiringPi/pseudoPins.c mode change 100644 => 100755 wiringPi/pseudoPins.h mode change 100644 => 100755 wiringPi/rht03.c mode change 100644 => 100755 wiringPi/rht03.h mode change 100644 => 100755 wiringPi/sn3218.c mode change 100644 => 100755 wiringPi/sn3218.h mode change 100644 => 100755 wiringPi/softPwm.c mode change 100644 => 100755 wiringPi/softPwm.h mode change 100644 => 100755 wiringPi/softServo.c mode change 100644 => 100755 wiringPi/softServo.h mode change 100644 => 100755 wiringPi/softTone.c mode change 100644 => 100755 wiringPi/softTone.h mode change 100644 => 100755 wiringPi/sr595.c mode change 100644 => 100755 wiringPi/sr595.h mode change 100644 => 100755 wiringPi/test/Makefile mode change 100644 => 100755 wiringPi/test/wiringpi_i2c_test1_pcf8574.c mode change 100644 => 100755 wiringPi/test/wiringpi_piface_test1.c mode change 100644 => 100755 wiringPi/test/wiringpi_spi_test1_mcp3202.c mode change 100644 => 100755 wiringPi/test/wiringpi_test0_version.c mode change 100644 => 100755 wiringPi/test/wiringpi_test1_sysfs.c mode change 100644 => 100755 wiringPi/test/wiringpi_test2_sysfs.c mode change 100644 => 100755 wiringPi/test/wiringpi_test3_device_wpi.c mode change 100644 => 100755 wiringPi/test/wiringpi_test4_device_phys.c mode change 100644 => 100755 wiringPi/test/wiringpi_test5_default.c mode change 100644 => 100755 wiringPi/test/wiringpi_test61_isr2.c mode change 100644 => 100755 wiringPi/test/wiringpi_test62_isr_wpin.c mode change 100644 => 100755 wiringPi/test/wiringpi_test6_isr.c mode change 100644 => 100755 wiringPi/test/wiringpi_test7_bench.c mode change 100644 => 100755 wiringPi/test/wiringpi_test8_pwm.c mode change 100644 => 100755 wiringPi/test/wiringpi_test9_pwm.c mode change 100644 => 100755 wiringPi/test/wiringpi_xotest_test1_spi.c mode change 100644 => 100755 wiringPi/test/wpi_test.h mode change 100644 => 100755 wiringPi/wiringPi.c mode change 100644 => 100755 wiringPi/wiringPi.h mode change 100644 => 100755 wiringPi/wiringPiI2C.c mode change 100644 => 100755 wiringPi/wiringPiI2C.h mode change 100644 => 100755 wiringPi/wiringPiLegacy.c mode change 100644 => 100755 wiringPi/wiringPiLegacy.h mode change 100644 => 100755 wiringPi/wiringPiSPI.c mode change 100644 => 100755 wiringPi/wiringPiSPI.h mode change 100644 => 100755 wiringPi/wiringSerial.c mode change 100644 => 100755 wiringPi/wiringSerial.h mode change 100644 => 100755 wiringPi/wiringShift.c mode change 100644 => 100755 wiringPi/wiringShift.h create mode 100755 wiringPi/wiringpiV1.c mode change 100644 => 100755 wiringPi/wpiExtensions.c mode change 100644 => 100755 wiringPi/wpiExtensions.h mode change 100644 => 100755 wiringPiD/Makefile mode change 100644 => 100755 wiringPiD/daemonise.c mode change 100644 => 100755 wiringPiD/daemonise.h mode change 100644 => 100755 wiringPiD/drcNetCmd.h mode change 100644 => 100755 wiringPiD/network.c mode change 100644 => 100755 wiringPiD/network.h mode change 100644 => 100755 wiringPiD/runRemote.c mode change 100644 => 100755 wiringPiD/runRemote.h mode change 100644 => 100755 wiringPiD/wiringpid.c diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index ed2ec80..6a46b85 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ lib*.so.* debian-template/wiringPi debian-template/wiringpi-*.deb gpio/gpio +.idea/ diff --git a/COPYING.LESSER b/COPYING.LESSER old mode 100644 new mode 100755 diff --git a/INSTALL b/INSTALL old mode 100644 new mode 100755 diff --git a/People b/People old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/VERSION b/VERSION old mode 100644 new mode 100755 diff --git a/debian-template/wiringPi/control_template b/debian-template/wiringPi/control_template old mode 100644 new mode 100755 diff --git a/debian/.gitignore b/debian/.gitignore old mode 100644 new mode 100755 diff --git a/debian/changelog b/debian/changelog old mode 100644 new mode 100755 diff --git a/debian/compat b/debian/compat old mode 100644 new mode 100755 diff --git a/debian/control b/debian/control old mode 100644 new mode 100755 diff --git a/debian/copyright b/debian/copyright old mode 100644 new mode 100755 diff --git a/debian/libwiringpi-dev.dirs b/debian/libwiringpi-dev.dirs old mode 100644 new mode 100755 diff --git a/debian/libwiringpi-dev.install b/debian/libwiringpi-dev.install old mode 100644 new mode 100755 diff --git a/debian/libwiringpi2.install b/debian/libwiringpi2.install old mode 100644 new mode 100755 diff --git a/debian/libwiringpi2.shlibs b/debian/libwiringpi2.shlibs old mode 100644 new mode 100755 diff --git a/debian/rules b/debian/rules old mode 100644 new mode 100755 diff --git a/debian/wiringpi.dirs b/debian/wiringpi.dirs old mode 100644 new mode 100755 diff --git a/debian/wiringpi.install b/debian/wiringpi.install old mode 100644 new mode 100755 diff --git a/devLib/Makefile b/devLib/Makefile old mode 100644 new mode 100755 diff --git a/devLib/ds1302.c b/devLib/ds1302.c old mode 100644 new mode 100755 diff --git a/devLib/ds1302.h b/devLib/ds1302.h old mode 100644 new mode 100755 diff --git a/devLib/font.h b/devLib/font.h old mode 100644 new mode 100755 diff --git a/devLib/gertboard.c b/devLib/gertboard.c old mode 100644 new mode 100755 diff --git a/devLib/gertboard.h b/devLib/gertboard.h old mode 100644 new mode 100755 diff --git a/devLib/lcd.c b/devLib/lcd.c old mode 100644 new mode 100755 diff --git a/devLib/lcd.h b/devLib/lcd.h old mode 100644 new mode 100755 diff --git a/devLib/lcd128x64.c b/devLib/lcd128x64.c old mode 100644 new mode 100755 diff --git a/devLib/lcd128x64.h b/devLib/lcd128x64.h old mode 100644 new mode 100755 diff --git a/devLib/maxdetect.c b/devLib/maxdetect.c old mode 100644 new mode 100755 diff --git a/devLib/maxdetect.h b/devLib/maxdetect.h old mode 100644 new mode 100755 diff --git a/devLib/piFace.c b/devLib/piFace.c old mode 100644 new mode 100755 diff --git a/devLib/piFace.h b/devLib/piFace.h old mode 100644 new mode 100755 diff --git a/devLib/piFaceOld.c b/devLib/piFaceOld.c old mode 100644 new mode 100755 diff --git a/devLib/piGlow.c b/devLib/piGlow.c old mode 100644 new mode 100755 diff --git a/devLib/piGlow.h b/devLib/piGlow.h old mode 100644 new mode 100755 diff --git a/devLib/piNes.c b/devLib/piNes.c old mode 100644 new mode 100755 diff --git a/devLib/piNes.h b/devLib/piNes.h old mode 100644 new mode 100755 diff --git a/devLib/scrollPhat.c b/devLib/scrollPhat.c old mode 100644 new mode 100755 diff --git a/devLib/scrollPhat.h b/devLib/scrollPhat.h old mode 100644 new mode 100755 diff --git a/devLib/scrollPhatFont.h b/devLib/scrollPhatFont.h old mode 100644 new mode 100755 diff --git a/documentation/deutsch/functions.md b/documentation/deutsch/functions.md old mode 100644 new mode 100755 diff --git a/documentation/english/functions.md b/documentation/english/functions.md old mode 100644 new mode 100755 diff --git a/examples/COPYING.LESSER b/examples/COPYING.LESSER old mode 100644 new mode 100755 diff --git a/examples/Gertboard/7segments.c b/examples/Gertboard/7segments.c old mode 100644 new mode 100755 diff --git a/examples/Gertboard/Makefile b/examples/Gertboard/Makefile old mode 100644 new mode 100755 diff --git a/examples/Gertboard/buttons.c b/examples/Gertboard/buttons.c old mode 100644 new mode 100755 diff --git a/examples/Gertboard/gertboard.c b/examples/Gertboard/gertboard.c old mode 100644 new mode 100755 diff --git a/examples/Gertboard/record.c b/examples/Gertboard/record.c old mode 100644 new mode 100755 diff --git a/examples/Gertboard/temperature.c b/examples/Gertboard/temperature.c old mode 100644 new mode 100755 diff --git a/examples/Gertboard/voltmeter.c b/examples/Gertboard/voltmeter.c old mode 100644 new mode 100755 diff --git a/examples/Gertboard/vumeter.c b/examples/Gertboard/vumeter.c old mode 100644 new mode 100755 diff --git a/examples/Makefile b/examples/Makefile old mode 100644 new mode 100755 index 7e95df3..d43c963 --- a/examples/Makefile +++ b/examples/Makefile @@ -48,7 +48,8 @@ SRC = blink.c blink8.c blink12.c \ delayTest.c serialRead.c serialTest.c okLed.c ds1302.c \ lowPower.c \ max31855.c \ - rht03.c + rht03.c \ + gpio-interrupt.c OBJ = $(SRC:.c=.o) diff --git a/examples/PiFace/Makefile b/examples/PiFace/Makefile old mode 100644 new mode 100755 diff --git a/examples/PiFace/blink.c b/examples/PiFace/blink.c old mode 100644 new mode 100755 diff --git a/examples/PiFace/buttons.c b/examples/PiFace/buttons.c old mode 100644 new mode 100755 diff --git a/examples/PiFace/ladder.c b/examples/PiFace/ladder.c old mode 100644 new mode 100755 diff --git a/examples/PiFace/metro.c b/examples/PiFace/metro.c old mode 100644 new mode 100755 diff --git a/examples/PiFace/motor.c b/examples/PiFace/motor.c old mode 100644 new mode 100755 diff --git a/examples/PiFace/reaction.c b/examples/PiFace/reaction.c old mode 100644 new mode 100755 diff --git a/examples/PiGlow/Makefile b/examples/PiGlow/Makefile old mode 100644 new mode 100755 diff --git a/examples/PiGlow/piGlow0.c b/examples/PiGlow/piGlow0.c old mode 100644 new mode 100755 diff --git a/examples/PiGlow/piGlow1.c b/examples/PiGlow/piGlow1.c old mode 100644 new mode 100755 diff --git a/examples/PiGlow/piglow.c b/examples/PiGlow/piglow.c old mode 100644 new mode 100755 diff --git a/examples/README.TXT b/examples/README.TXT old mode 100644 new mode 100755 diff --git a/examples/blink-thread.c b/examples/blink-thread.c old mode 100644 new mode 100755 diff --git a/examples/blink.c b/examples/blink.c old mode 100644 new mode 100755 diff --git a/examples/blink.rtb b/examples/blink.rtb old mode 100644 new mode 100755 diff --git a/examples/blink.sh b/examples/blink.sh old mode 100644 new mode 100755 diff --git a/examples/blink12.c b/examples/blink12.c old mode 100644 new mode 100755 diff --git a/examples/blink12drcs.c b/examples/blink12drcs.c old mode 100644 new mode 100755 diff --git a/examples/blink6drcs.c b/examples/blink6drcs.c old mode 100644 new mode 100755 diff --git a/examples/blink8-drcn.c b/examples/blink8-drcn.c old mode 100644 new mode 100755 diff --git a/examples/blink8.c b/examples/blink8.c old mode 100644 new mode 100755 diff --git a/examples/clock.c b/examples/clock.c old mode 100644 new mode 100755 diff --git a/examples/delayTest.c b/examples/delayTest.c old mode 100644 new mode 100755 diff --git a/examples/ds1302.c b/examples/ds1302.c old mode 100644 new mode 100755 diff --git a/examples/gpio-interrupt.c b/examples/gpio-interrupt.c new file mode 100755 index 0000000..a078616 --- /dev/null +++ b/examples/gpio-interrupt.c @@ -0,0 +1,113 @@ +/* Demonstration C GPIO interrupt handling routine for Raspberry Pi + +This is a modified code found at https://github.com/phil-lavin/raspberry-pi-gpio-interrupt + +The program displays a notice whenever you: + -turn on the Raspberry Pi's pin 11 (apply 3.3V), + -turn the pin off. + +This routine uses wiringPi library (follow the installation instructions at wiringpi.com), +and should be compiled with a command: + +gcc source_filename -o executable_filename -lwiringPi + +You must have root privileges to run it - I don't know any workaround yet: + +sudo ./executable_filename + +Then the program displays a notice whenever you turn the GPIO pin 11 on and off. +It runs as an infinite loop and you can cancel it by pressing ctrl-C. +*/ + +#include +#include +#include +#include +#include + +// Which GPIO pin we're using. For this program we'll use physical pin numbers. +#define PIN 27 + +// How much time a change must be since the last in order to count as a change +// (in microseconds); allows to avoid generating interrupts on contact bouncing etc. +#define IGNORE_CHANGE_BELOW_USEC 10000 + +// Current state of the pin +static volatile int state; + +// Time of last change +struct timeval last_change; + + +// Handler for interrupt +void handle(void) { + struct timeval now; + static __uint64_t cnt; + unsigned long diff; + //gettimeofday(&now, NULL); + state = digitalRead(PIN); + printf("-->%d %d\n", ++cnt, state); + return; + + // Time difference in microseconds + diff = (now.tv_sec * 1000000 + now.tv_usec) - (last_change.tv_sec * 1000000 + last_change.tv_usec); + + // Filter any changes in intervals shorter than diff (like contact bouncing etc.): + /* + if (diff > IGNORE_CHANGE_BELOW_USEC) { + + // Check whether the last state was on or off: + if (state) { + // Print info to console: + printf("Input goes off\n"); + // You can add some code to do when input goes off here... + } + else { + // Print info to console: + printf("Input goes on\n"); + // Add code to do when input goes on here... + } + + // Change the "state" variable value: + state = !state; + } + */ + // Store the time for last state change: + last_change = now; +} + +int main(void) { + // Init -- use the physical pin number on RPi P1 connector + if (wiringPiSetup() == -1) + { + printf("ошибка wiringPiSetup()\n"); + exit(1); + } + + // Set pin to input in case it's not + pinMode(PIN, INPUT); + pullUpDnControl(PIN, PUD_UP); + + // Time now + gettimeofday(&last_change, NULL); + + // Bind to interrupt + wiringPiISR(PIN, INT_EDGE_RISING, &handle); + + // Get initial state of pin + state = digitalRead(PIN); + + // Feedback for user that the program has started, depending on input state: + if (state) { + printf("Started! Initial state is on\n"); + } + else { + printf("Started! Initial state is off\n"); + } + + // Waste time but not CPU + for (;;) { + sleep(1); + state = digitalRead(PIN); + } +} diff --git a/examples/header.h b/examples/header.h old mode 100644 new mode 100755 diff --git a/examples/isr-osc.c b/examples/isr-osc.c old mode 100644 new mode 100755 diff --git a/examples/isr.c b/examples/isr.c old mode 100644 new mode 100755 diff --git a/examples/isr3.c b/examples/isr3.c old mode 100644 new mode 100755 diff --git a/examples/isr_debounce.c b/examples/isr_debounce.c old mode 100644 new mode 100755 diff --git a/examples/lcd-adafruit.c b/examples/lcd-adafruit.c old mode 100644 new mode 100755 diff --git a/examples/lcd.c b/examples/lcd.c old mode 100644 new mode 100755 diff --git a/examples/lowPower.c b/examples/lowPower.c old mode 100644 new mode 100755 diff --git a/examples/max31855.c b/examples/max31855.c old mode 100644 new mode 100755 diff --git a/examples/nes.c b/examples/nes.c old mode 100644 new mode 100755 diff --git a/examples/okLed.c b/examples/okLed.c old mode 100644 new mode 100755 diff --git a/examples/pwm.c b/examples/pwm.c old mode 100644 new mode 100755 diff --git a/examples/q2w/Makefile b/examples/q2w/Makefile old mode 100644 new mode 100755 diff --git a/examples/q2w/binary.c b/examples/q2w/binary.c old mode 100644 new mode 100755 diff --git a/examples/q2w/blink-io.c b/examples/q2w/blink-io.c old mode 100644 new mode 100755 diff --git a/examples/q2w/blink.c b/examples/q2w/blink.c old mode 100644 new mode 100755 diff --git a/examples/q2w/blink.sh b/examples/q2w/blink.sh old mode 100644 new mode 100755 diff --git a/examples/q2w/bright.c b/examples/q2w/bright.c old mode 100644 new mode 100755 diff --git a/examples/q2w/button.c b/examples/q2w/button.c old mode 100644 new mode 100755 diff --git a/examples/q2w/volts.c b/examples/q2w/volts.c old mode 100644 new mode 100755 diff --git a/examples/rht03.c b/examples/rht03.c old mode 100644 new mode 100755 diff --git a/examples/scrollPhat/Makefile b/examples/scrollPhat/Makefile old mode 100644 new mode 100755 diff --git a/examples/scrollPhat/scphat.c b/examples/scrollPhat/scphat.c old mode 100644 new mode 100755 diff --git a/examples/scrollPhat/test.c b/examples/scrollPhat/test.c old mode 100644 new mode 100755 diff --git a/examples/serialRead.c b/examples/serialRead.c old mode 100644 new mode 100755 diff --git a/examples/serialTest.c b/examples/serialTest.c old mode 100644 new mode 100755 diff --git a/examples/servo.c b/examples/servo.c old mode 100644 new mode 100755 diff --git a/examples/softPwm.c b/examples/softPwm.c old mode 100644 new mode 100755 diff --git a/examples/softTone.c b/examples/softTone.c old mode 100644 new mode 100755 diff --git a/examples/speed.c b/examples/speed.c old mode 100644 new mode 100755 diff --git a/examples/spiSpeed.c b/examples/spiSpeed.c old mode 100644 new mode 100755 diff --git a/examples/wfi.c b/examples/wfi.c old mode 100644 new mode 100755 index 5a2ed1c..f110868 --- a/examples/wfi.c +++ b/examples/wfi.c @@ -58,6 +58,8 @@ static volatile int globalCounter = 0 ; +int waitForInterruptV1(int pin, int mS); + /* * waitForIt: * This is a thread created using the wiringPi simplified threading @@ -75,7 +77,8 @@ PI_THREAD (waitForIt) for (;;) { - if (waitForInterrupt (BUTTON_PIN, -1) > 0) // Got it + struct WPIWfiStatus rc = waitForInterrupt2 (BUTTON_PIN, INT_EDGE_RISING, -1, 0); + if (rc.statusOK > 0) // Got it { // Bouncing? diff --git a/gpio/COPYING.LESSER b/gpio/COPYING.LESSER old mode 100644 new mode 100755 diff --git a/gpio/Makefile b/gpio/Makefile old mode 100644 new mode 100755 diff --git a/gpio/gpio.1 b/gpio/gpio.1 old mode 100644 new mode 100755 diff --git a/gpio/gpio.c b/gpio/gpio.c old mode 100644 new mode 100755 diff --git a/gpio/readall.c b/gpio/readall.c old mode 100644 new mode 100755 diff --git a/gpio/test/pintest.sh b/gpio/test/pintest.sh old mode 100644 new mode 100755 diff --git a/pins/Makefile b/pins/Makefile old mode 100644 new mode 100755 diff --git a/pins/pins.pdf b/pins/pins.pdf old mode 100644 new mode 100755 diff --git a/pins/pins.tex b/pins/pins.tex old mode 100644 new mode 100755 diff --git a/version.h b/version.h old mode 100644 new mode 100755 diff --git a/wiringPi/COPYING.LESSER b/wiringPi/COPYING.LESSER old mode 100644 new mode 100755 diff --git a/wiringPi/Makefile b/wiringPi/Makefile old mode 100644 new mode 100755 diff --git a/wiringPi/WiringpiV1.c b/wiringPi/WiringpiV1.c old mode 100644 new mode 100755 diff --git a/wiringPi/ads1115.c b/wiringPi/ads1115.c old mode 100644 new mode 100755 diff --git a/wiringPi/ads1115.h b/wiringPi/ads1115.h old mode 100644 new mode 100755 diff --git a/wiringPi/bmp180.c b/wiringPi/bmp180.c old mode 100644 new mode 100755 diff --git a/wiringPi/bmp180.h b/wiringPi/bmp180.h old mode 100644 new mode 100755 diff --git a/wiringPi/drcNet.c b/wiringPi/drcNet.c old mode 100644 new mode 100755 diff --git a/wiringPi/drcNet.h b/wiringPi/drcNet.h old mode 100644 new mode 100755 diff --git a/wiringPi/drcSerial.c b/wiringPi/drcSerial.c old mode 100644 new mode 100755 diff --git a/wiringPi/drcSerial.h b/wiringPi/drcSerial.h old mode 100644 new mode 100755 diff --git a/wiringPi/ds18b20.c b/wiringPi/ds18b20.c old mode 100644 new mode 100755 diff --git a/wiringPi/ds18b20.h b/wiringPi/ds18b20.h old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/.gitignore b/wiringPi/gtest/.gitignore old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/Makefile b/wiringPi/gtest/Makefile old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/README.md b/wiringPi/gtest/README.md old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/run_isr.cpp b/wiringPi/gtest/run_isr.cpp old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/test_isr_both.cpp b/wiringPi/gtest/test_isr_both.cpp old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/test_isr_conflict_between_processes.cpp b/wiringPi/gtest/test_isr_conflict_between_processes.cpp old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/test_isr_falling.cpp b/wiringPi/gtest/test_isr_falling.cpp old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/test_isr_restart.cpp b/wiringPi/gtest/test_isr_restart.cpp old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/test_isr_restart2.cpp b/wiringPi/gtest/test_isr_restart2.cpp old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/test_isr_rising.cpp b/wiringPi/gtest/test_isr_rising.cpp old mode 100644 new mode 100755 diff --git a/wiringPi/gtest/test_isr_rising2.cpp b/wiringPi/gtest/test_isr_rising2.cpp old mode 100644 new mode 100755 diff --git a/wiringPi/htu21d.c b/wiringPi/htu21d.c old mode 100644 new mode 100755 diff --git a/wiringPi/htu21d.h b/wiringPi/htu21d.h old mode 100644 new mode 100755 diff --git a/wiringPi/max31855.c b/wiringPi/max31855.c old mode 100644 new mode 100755 diff --git a/wiringPi/max31855.h b/wiringPi/max31855.h old mode 100644 new mode 100755 diff --git a/wiringPi/max5322.c b/wiringPi/max5322.c old mode 100644 new mode 100755 diff --git a/wiringPi/max5322.h b/wiringPi/max5322.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23008.c b/wiringPi/mcp23008.c old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23008.h b/wiringPi/mcp23008.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23016.c b/wiringPi/mcp23016.c old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23016.h b/wiringPi/mcp23016.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23016reg.h b/wiringPi/mcp23016reg.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23017.c b/wiringPi/mcp23017.c old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23017.h b/wiringPi/mcp23017.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23s08.c b/wiringPi/mcp23s08.c old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23s08.h b/wiringPi/mcp23s08.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23s17.c b/wiringPi/mcp23s17.c old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23s17.h b/wiringPi/mcp23s17.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23x08.h b/wiringPi/mcp23x08.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp23x0817.h b/wiringPi/mcp23x0817.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp3002.c b/wiringPi/mcp3002.c old mode 100644 new mode 100755 diff --git a/wiringPi/mcp3002.h b/wiringPi/mcp3002.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp3004.c b/wiringPi/mcp3004.c old mode 100644 new mode 100755 diff --git a/wiringPi/mcp3004.h b/wiringPi/mcp3004.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp3422.c b/wiringPi/mcp3422.c old mode 100644 new mode 100755 diff --git a/wiringPi/mcp3422.h b/wiringPi/mcp3422.h old mode 100644 new mode 100755 diff --git a/wiringPi/mcp4802.c b/wiringPi/mcp4802.c old mode 100644 new mode 100755 diff --git a/wiringPi/mcp4802.h b/wiringPi/mcp4802.h old mode 100644 new mode 100755 diff --git a/wiringPi/noMoreStatic b/wiringPi/noMoreStatic old mode 100644 new mode 100755 diff --git a/wiringPi/pcf8574.c b/wiringPi/pcf8574.c old mode 100644 new mode 100755 diff --git a/wiringPi/pcf8574.h b/wiringPi/pcf8574.h old mode 100644 new mode 100755 diff --git a/wiringPi/pcf8591.c b/wiringPi/pcf8591.c old mode 100644 new mode 100755 diff --git a/wiringPi/pcf8591.h b/wiringPi/pcf8591.h old mode 100644 new mode 100755 diff --git a/wiringPi/piHiPri.c b/wiringPi/piHiPri.c old mode 100644 new mode 100755 diff --git a/wiringPi/piThread.c b/wiringPi/piThread.c old mode 100644 new mode 100755 diff --git a/wiringPi/pseudoPins.c b/wiringPi/pseudoPins.c old mode 100644 new mode 100755 diff --git a/wiringPi/pseudoPins.h b/wiringPi/pseudoPins.h old mode 100644 new mode 100755 diff --git a/wiringPi/rht03.c b/wiringPi/rht03.c old mode 100644 new mode 100755 diff --git a/wiringPi/rht03.h b/wiringPi/rht03.h old mode 100644 new mode 100755 diff --git a/wiringPi/sn3218.c b/wiringPi/sn3218.c old mode 100644 new mode 100755 diff --git a/wiringPi/sn3218.h b/wiringPi/sn3218.h old mode 100644 new mode 100755 diff --git a/wiringPi/softPwm.c b/wiringPi/softPwm.c old mode 100644 new mode 100755 diff --git a/wiringPi/softPwm.h b/wiringPi/softPwm.h old mode 100644 new mode 100755 diff --git a/wiringPi/softServo.c b/wiringPi/softServo.c old mode 100644 new mode 100755 diff --git a/wiringPi/softServo.h b/wiringPi/softServo.h old mode 100644 new mode 100755 diff --git a/wiringPi/softTone.c b/wiringPi/softTone.c old mode 100644 new mode 100755 diff --git a/wiringPi/softTone.h b/wiringPi/softTone.h old mode 100644 new mode 100755 diff --git a/wiringPi/sr595.c b/wiringPi/sr595.c old mode 100644 new mode 100755 diff --git a/wiringPi/sr595.h b/wiringPi/sr595.h old mode 100644 new mode 100755 diff --git a/wiringPi/test/Makefile b/wiringPi/test/Makefile old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_i2c_test1_pcf8574.c b/wiringPi/test/wiringpi_i2c_test1_pcf8574.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_piface_test1.c b/wiringPi/test/wiringpi_piface_test1.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_spi_test1_mcp3202.c b/wiringPi/test/wiringpi_spi_test1_mcp3202.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test0_version.c b/wiringPi/test/wiringpi_test0_version.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test1_sysfs.c b/wiringPi/test/wiringpi_test1_sysfs.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test2_sysfs.c b/wiringPi/test/wiringpi_test2_sysfs.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test3_device_wpi.c b/wiringPi/test/wiringpi_test3_device_wpi.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test4_device_phys.c b/wiringPi/test/wiringpi_test4_device_phys.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test5_default.c b/wiringPi/test/wiringpi_test5_default.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test61_isr2.c b/wiringPi/test/wiringpi_test61_isr2.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test62_isr_wpin.c b/wiringPi/test/wiringpi_test62_isr_wpin.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test6_isr.c b/wiringPi/test/wiringpi_test6_isr.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test7_bench.c b/wiringPi/test/wiringpi_test7_bench.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test8_pwm.c b/wiringPi/test/wiringpi_test8_pwm.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_test9_pwm.c b/wiringPi/test/wiringpi_test9_pwm.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wiringpi_xotest_test1_spi.c b/wiringPi/test/wiringpi_xotest_test1_spi.c old mode 100644 new mode 100755 diff --git a/wiringPi/test/wpi_test.h b/wiringPi/test/wpi_test.h old mode 100644 new mode 100755 diff --git a/wiringPi/wiringPi.c b/wiringPi/wiringPi.c old mode 100644 new mode 100755 diff --git a/wiringPi/wiringPi.h b/wiringPi/wiringPi.h old mode 100644 new mode 100755 diff --git a/wiringPi/wiringPiI2C.c b/wiringPi/wiringPiI2C.c old mode 100644 new mode 100755 diff --git a/wiringPi/wiringPiI2C.h b/wiringPi/wiringPiI2C.h old mode 100644 new mode 100755 diff --git a/wiringPi/wiringPiLegacy.c b/wiringPi/wiringPiLegacy.c old mode 100644 new mode 100755 diff --git a/wiringPi/wiringPiLegacy.h b/wiringPi/wiringPiLegacy.h old mode 100644 new mode 100755 diff --git a/wiringPi/wiringPiSPI.c b/wiringPi/wiringPiSPI.c old mode 100644 new mode 100755 diff --git a/wiringPi/wiringPiSPI.h b/wiringPi/wiringPiSPI.h old mode 100644 new mode 100755 diff --git a/wiringPi/wiringSerial.c b/wiringPi/wiringSerial.c old mode 100644 new mode 100755 diff --git a/wiringPi/wiringSerial.h b/wiringPi/wiringSerial.h old mode 100644 new mode 100755 diff --git a/wiringPi/wiringShift.c b/wiringPi/wiringShift.c old mode 100644 new mode 100755 diff --git a/wiringPi/wiringShift.h b/wiringPi/wiringShift.h old mode 100644 new mode 100755 diff --git a/wiringPi/wiringpiV1.c b/wiringPi/wiringpiV1.c new file mode 100755 index 0000000..64428bb --- /dev/null +++ b/wiringPi/wiringpiV1.c @@ -0,0 +1,246 @@ +#include "wiringPi.h" + + +int requestLineV1(int pin, unsigned int lineRequestFlags) { + struct gpiohandle_request rq; + + if (lineFds[pin]>=0) { + if (lineRequestFlags == lineFlags[pin]) { + //already requested + return lineFds[pin]; + } else { + //different request -> rerequest + releaseLine(pin); + } + } + + //requested line + if (wiringPiGpioDeviceGetFd()<0) { + return -1; // error + } + rq.lineoffsets[0] = pin; + rq.lines = 1; + rq.flags = 0; + // MAP to V1 Flag + if (lineRequestFlags & WPI_FLAG_INPUT) { + rq.flags |= GPIOHANDLE_REQUEST_INPUT; + } + if (lineRequestFlags & WPI_FLAG_OUTPUT) { + rq.flags |= GPIOHANDLE_REQUEST_OUTPUT; + } + if (lineRequestFlags & WPI_FLAG_BIAS_OFF) { + rq.flags |= GPIOHANDLE_REQUEST_BIAS_DISABLE; + } + if (lineRequestFlags & WPI_FLAG_BIAS_UP) { + rq.flags |= GPIOHANDLE_REQUEST_BIAS_PULL_UP; + } + if (lineRequestFlags & WPI_FLAG_BIAS_DOWN) { + rq.flags |= GPIOHANDLE_REQUEST_BIAS_PULL_DOWN; + } + int ret = ioctl(chipFd, GPIO_GET_LINEHANDLE_IOCTL, &rq); + if (ret || rq.fd<0) { + ReportDeviceError("get line handle", pin, "RequestLineV1", ret); + return -1; // error + } + + lineFlags[pin] = lineRequestFlags; + lineFds[pin] = rq.fd; + if (wiringPiDebug) + printf ("requestLine succeeded: pin:%d, flags: %u, fd :%d\n", pin, lineRequestFlags, lineFds[pin]) ; + return lineFds[pin]; + } + + + int digitalReadDeviceV1(int pin) { // INPUT and OUTPUT should work + + if (lineFds[pin]<0) { + // line not requested - auto request on first read as input + pinModeDevice(pin, INPUT); + } + if (lineFds[pin]>=0) { + struct gpiohandle_data data; + int ret = ioctl(lineFds[pin], GPIOHANDLE_GET_LINE_VALUES_IOCTL, &data); + if (ret) { + ReportDeviceError("get line values", pin, "digitalRead", ret); + return LOW; // error + } + return data.values[0]; + } + return LOW; // error , need to request line before + } + + + void digitalWriteDeviceV1(int pin, int value) { + + if (wiringPiDebug) + printf ("digitalWriteDevice: ioctl pin:%d value: %d\n", pin, value) ; + + if (lineFds[pin]<0) { + // line not requested - auto request on first write as output + pinModeDevice(pin, OUTPUT); + } + if (lineFds[pin]>=0 && (lineFlags[pin] & GPIOHANDLE_REQUEST_OUTPUT)>0) { + struct gpiohandle_data data; + data.values[0] = value; + if (wiringPiDebug) + printf ("digitalWriteDevice: ioctl pin:%d cmd: GPIOHANDLE_SET_LINE_VALUES_IOCTL, value: %d\n", pin, value) ; + int ret = ioctl(lineFds[pin], GPIOHANDLE_SET_LINE_VALUES_IOCTL, &data); + if (ret) { + ReportDeviceError("set line values", pin, "digitalWrite", ret); + return; // error + } + } else { + fprintf(stderr, "digitalWrite: no output (%d)\n", lineFlags[pin]); + } + return; // error + } + + /* + * waitForInterrupt: + * Pi Specific. + * Wait for Interrupt on a GPIO pin. + * This is actually done via the /dev/gpiochip interface regardless of + * the wiringPi access mode in-use. Maybe sometime it might get a better + * way for a bit more efficiency. + ********************************************************************************* + */ + +int waitForInterruptV1(int pin, int mS) +{ + int fd, ret; + struct pollfd polls ; + struct gpioevent_data evdata; + //struct gpio_v2_line_request req2; + + if (wiringPiMode == WPI_MODE_PINS) + pin = pinToGpio [pin] ; + else if (wiringPiMode == WPI_MODE_PHYS) + pin = physToGpio [pin] ; + + if ((fd = isrFds [pin]) == -1) + return -2 ; + + // Setup poll structure + polls.fd = fd; + polls.events = POLLIN | POLLERR ; + polls.revents = 0; + + // Wait for it ... + ret = poll(&polls, 1, mS); + if (ret <= 0) { + fprintf(stderr, "wiringPi: ERROR: poll returned=%d\n", ret); + } else { + //if (polls.revents & POLLIN) + if (wiringPiDebug) { + printf ("wiringPi: IRQ line %d received %d, fd=%d\n", pin, ret, isrFds[pin]) ; + } + /* read event data */ + int readret = read(isrFds [pin], &evdata, sizeof(evdata)); + if (readret == sizeof(evdata)) { + if (wiringPiDebug) { + printf ("wiringPi: IRQ data id: %d, timestamp: %lld\n", evdata.id, evdata.timestamp) ; + } + ret = evdata.id; + } else { + ret = 0; + } + } + return ret; +} + +int waitForInterruptInitV1(int pin, int mode) +{ + const char* strmode = ""; + + if (wiringPiMode == WPI_MODE_PINS) { + pin = pinToGpio [pin] ; + } else if (wiringPiMode == WPI_MODE_PHYS) { + pin = physToGpio [pin] ; + } + + /* open gpio */ + sleep(1); + if (wiringPiGpioDeviceGetFd()<0) { + return -1; + } + + struct gpioevent_request req; + req.lineoffset = pin; + req.handleflags = GPIOHANDLE_REQUEST_INPUT; + switch(mode) { + default: + case INT_EDGE_SETUP: + if (wiringPiDebug) { + printf ("wiringPi: waitForInterruptMode mode INT_EDGE_SETUP - exiting\n") ; + } + return -1; + case INT_EDGE_FALLING: + req.eventflags = GPIOEVENT_REQUEST_FALLING_EDGE; + strmode = "falling"; + break; + case INT_EDGE_RISING: + req.eventflags = GPIOEVENT_REQUEST_RISING_EDGE; + strmode = "rising"; + break; + case INT_EDGE_BOTH: + req.eventflags = GPIOEVENT_REQUEST_BOTH_EDGES; + strmode = "both"; + break; + } + strncpy(req.consumer_label, "wiringpi_gpio_irq", sizeof(req.consumer_label) - 1); + + //later implement GPIO_V2_GET_LINE_IOCTL req2 + int ret = ioctl(chipFd, GPIO_GET_LINEEVENT_IOCTL, &req); + if (ret) { + ReportDeviceError("get line event", pin , strmode, ret); + return -1; + } + if (wiringPiDebug) { + printf ("wiringPi: GPIO get line %d , mode %s succeded, fd=%d\n", pin, strmode, req.fd) ; + } + + /* set event fd nonbloack read */ + int fd_line = req.fd; + isrFds [pin] = fd_line; + int flags = fcntl(fd_line, F_GETFL); + flags |= O_NONBLOCK; + ret = fcntl(fd_line, F_SETFL, flags); + if (ret) { + fprintf(stderr, "wiringPi: ERROR: fcntl set nonblock return=%d\n", ret); + return -1; + } + + return 0; +} + + +int waitForInterruptClose (int pin) { + if (isrFds[pin]>0) { + if (wiringPiDebug) { + printf ("wiringPi: waitForInterruptClose close thread 0x%lX\n", (unsigned long)isrThreads[pin]) ; + } + if (pthread_cancel(isrThreads[pin]) == 0) { + if (wiringPiDebug) { + printf ("wiringPi: waitForInterruptClose thread canceled successfuly\n") ; + } + } else { + if (wiringPiDebug) { + fprintf (stderr, "wiringPi: waitForInterruptClose could not cancel thread\n"); + } + } + close(isrFds [pin]); + } + isrFds [pin] = -1; + isrFunctions [pin] = NULL; + + /* -not closing so far - other isr may be using it - only close if no other is using - will code later + if (chipFd>0) { + close(chipFd); + } + chipFd = -1; + */ + if (wiringPiDebug) { + printf ("wiringPi: waitForInterruptClose finished\n") ; + } + return 0; +} diff --git a/wiringPi/wpiExtensions.c b/wiringPi/wpiExtensions.c old mode 100644 new mode 100755 diff --git a/wiringPi/wpiExtensions.h b/wiringPi/wpiExtensions.h old mode 100644 new mode 100755 diff --git a/wiringPiD/Makefile b/wiringPiD/Makefile old mode 100644 new mode 100755 diff --git a/wiringPiD/daemonise.c b/wiringPiD/daemonise.c old mode 100644 new mode 100755 diff --git a/wiringPiD/daemonise.h b/wiringPiD/daemonise.h old mode 100644 new mode 100755 diff --git a/wiringPiD/drcNetCmd.h b/wiringPiD/drcNetCmd.h old mode 100644 new mode 100755 diff --git a/wiringPiD/network.c b/wiringPiD/network.c old mode 100644 new mode 100755 diff --git a/wiringPiD/network.h b/wiringPiD/network.h old mode 100644 new mode 100755 diff --git a/wiringPiD/runRemote.c b/wiringPiD/runRemote.c old mode 100644 new mode 100755 diff --git a/wiringPiD/runRemote.h b/wiringPiD/runRemote.h old mode 100644 new mode 100755 diff --git a/wiringPiD/wiringpid.c b/wiringPiD/wiringpid.c old mode 100644 new mode 100755