move examples

This commit is contained in:
MX 2024-10-16 01:07:03 +03:00
parent 7de26fb99b
commit ac3c6dc4f9
No known key found for this signature in database
GPG key ID: 7CCC66B7DBDD1C83
4 changed files with 34 additions and 96 deletions

View file

@ -1,57 +0,0 @@
let eventLoop = require("event_loop");
let gpio = require("gpio");
// initialize pins
let led = gpio.get("pc3"); // same as `gpio.get(7)`
let pot = gpio.get("pc0"); // same as `gpio.get(16)`
let button = gpio.get("pc1"); // same as `gpio.get(15)`
led.init({ direction: "out", outMode: "push_pull" });
pot.init({ direction: "in", inMode: "analog" });
button.init({ direction: "in", pull: "up", inMode: "interrupt", edge: "falling" });
// blink led
print("Commencing blinking (PC3)");
eventLoop.subscribe(eventLoop.timer("periodic", 1000), function (_, _item, led, state) {
led.write(state);
return [led, !state];
}, led, true);
// read potentiometer when button is pressed
print("Press the button (PC1)");
eventLoop.subscribe(button.interrupt(), function (_, _item, pot) {
print("PC0 is at", pot.read_analog(), "mV");
}, pot);
// the program will just exit unless this is here
eventLoop.run();
// possible pins https://docs.flipper.net/gpio-and-modules#miFsS
// "PA7" aka 2
// "PA6" aka 3
// "PA4" aka 4
// "PB3" aka 5
// "PB2" aka 6
// "PC3" aka 7
// "PA14" aka 10
// "PA13" aka 12
// "PB6" aka 13
// "PB7" aka 14
// "PC1" aka 15
// "PC0" aka 16
// "PB14" aka 17
// possible modes
// { direction: "out", outMode: "push_pull" }
// { direction: "out", outMode: "open_drain" }
// { direction: "out", outMode: "push_pull", altFn: true }
// { direction: "out", outMode: "open_drain", altFn: true }
// { direction: "in", inMode: "analog" }
// { direction: "in", inMode: "plain_digital" }
// { direction: "in", inMode: "interrupt", edge: "rising" }
// { direction: "in", inMode: "interrupt", edge: "falling" }
// { direction: "in", inMode: "interrupt", edge: "both" }
// { direction: "in", inMode: "event", edge: "rising" }
// { direction: "in", inMode: "event", edge: "falling" }
// { direction: "in", inMode: "event", edge: "both" }
// all variants support an optional `pull` field which can either be undefined,
// "up" or "down"

View file

@ -1,31 +1,29 @@
let eventLoop = require("event_loop");
let gpio = require("gpio"); let gpio = require("gpio");
// initialize pins // initialize pins
gpio.init("PC3", "outputPushPull", "up"); // pin, mode, pull let led = gpio.get("pc3"); // same as `gpio.get(7)`
print("PC3 is initialized as outputPushPull with pull-up"); let pot = gpio.get("pc0"); // same as `gpio.get(16)`
let button = gpio.get("pc1"); // same as `gpio.get(15)`
led.init({ direction: "out", outMode: "push_pull" });
pot.init({ direction: "in", inMode: "analog" });
button.init({ direction: "in", pull: "up", inMode: "interrupt", edge: "falling" });
gpio.init("PC1", "input", "down"); // pin, mode, pull // blink led
print("PC1 is initialized as input with pull-down"); print("Commencing blinking (PC3)");
eventLoop.subscribe(eventLoop.timer("periodic", 1000), function (_, _item, led, state) {
led.write(state);
return [led, !state];
}, led, true);
// let led on PC3 blink // read potentiometer when button is pressed
gpio.write("PC3", true); // high print("Press the button (PC1)");
delay(1000); eventLoop.subscribe(button.interrupt(), function (_, _item, pot) {
gpio.write("PC3", false); // low print("PC0 is at", pot.read_analog(), "mV");
delay(1000); }, pot);
gpio.write("PC3", true); // high
delay(1000);
gpio.write("PC3", false); // low
// read value from PC1 and write it to PC3
while (true) {
let value = gpio.read("PC1");
gpio.write("PC3", value);
value ? print("PC1 is high") : print("PC1 is low");
delay(100);
}
// the program will just exit unless this is here
eventLoop.run();
// possible pins https://docs.flipper.net/gpio-and-modules#miFsS // possible pins https://docs.flipper.net/gpio-and-modules#miFsS
// "PA7" aka 2 // "PA7" aka 2
@ -43,20 +41,17 @@ while (true) {
// "PB14" aka 17 // "PB14" aka 17
// possible modes // possible modes
// "input" // { direction: "out", outMode: "push_pull" }
// "outputPushPull" // { direction: "out", outMode: "open_drain" }
// "outputOpenDrain" // { direction: "out", outMode: "push_pull", altFn: true }
// "altFunctionPushPull" // { direction: "out", outMode: "open_drain", altFn: true }
// "altFunctionOpenDrain" // { direction: "in", inMode: "analog" }
// "analog" // { direction: "in", inMode: "plain_digital" }
// "interruptRise" // { direction: "in", inMode: "interrupt", edge: "rising" }
// "interruptFall" // { direction: "in", inMode: "interrupt", edge: "falling" }
// "interruptRiseFall" // { direction: "in", inMode: "interrupt", edge: "both" }
// "eventRise" // { direction: "in", inMode: "event", edge: "rising" }
// "eventFall" // { direction: "in", inMode: "event", edge: "falling" }
// "eventRiseFall" // { direction: "in", inMode: "event", edge: "both" }
// all variants support an optional `pull` field which can either be undefined,
// possible pull // "up" or "down"
// "no"
// "up"
// "down"