mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-11-23 04:53:08 +00:00
move examples
This commit is contained in:
parent
7de26fb99b
commit
ac3c6dc4f9
4 changed files with 34 additions and 96 deletions
|
@ -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"
|
|
|
@ -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"
|
|
||||||
|
|
Loading…
Reference in a new issue