Optimisation

This commit is contained in:
Alexander Davis
2021-06-19 17:28:32 +01:00
parent d9c4785ded
commit eb1e5f1666
6 changed files with 55 additions and 94 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 KiB

After

Width:  |  Height:  |  Size: 608 KiB

BIN
.github/makecode/blocksdiff.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

File diff suppressed because one or more lines are too long

118
main.py
View File

@@ -1,91 +1,55 @@
def changes2(difference: number, flag: number): def updateNumber(flag: number, column: number, difference: number):
global Denary global Denary
Denary += difference Denary += difference
Display(Denary) columns[column] = flag
def changes4(difference: number, flag: number):
global Denary
Denary += difference
column4 = flag
Display(Denary)
def changes128(difference: number, flag: number):
global Denary
Denary += difference
column128 = flag
Display(Denary) Display(Denary)
def Display(number: number): def Display(number: number):
serial.write_string("/") serial.write_string("/")
serial.write_number(number) serial.write_number(number)
def changes256(difference: number, flag: number):
global Denary
Denary += difference
column256 = flag
Display(Denary)
def changes1(difference: number, flag: number):
global Denary
Denary += difference
column1 = flag
Display(Denary)
def changes16(difference: number, flag: number):
global Denary
Denary += difference
column16 = flag
Display(Denary)
def changes32(difference: number, flag: number):
global Denary
Denary += difference
column32 = flag
Display(Denary)
def changes64(difference: number, flag: number):
global Denary
Denary += difference
column64 = flag
Display(Denary)
def changes8(difference: number, flag: number):
global Denary
Denary += difference
column8 = flag
Display(Denary)
Denary = 0 Denary = 0
columns: List[number] = []
serial.redirect(SerialPin.P0, SerialPin.P16, BaudRate.BAUD_RATE9600) serial.redirect(SerialPin.P0, SerialPin.P16, BaudRate.BAUD_RATE9600)
columns = [0, 0, 0, 0, 0, 0, 0, 0, 0] columns = [0, 0, 0, 0, 0, 0, 0, 0, 0]
Denary = 0 Denary = 0
Display(Denary) Display(Denary)
ready = True
def on_forever(): def on_forever():
if pins.digital_read_pin(DigitalPin.P1) == 1 and columns[0] == 0: if ready:
changes1(1, 1) if pins.digital_read_pin(DigitalPin.P1) == 1 and columns[0] == 0:
elif pins.digital_read_pin(DigitalPin.P1) == 0 and columns[0] == 1: updateNumber(1, 0, 1)
changes1(-1, 0) elif pins.digital_read_pin(DigitalPin.P1) == 0 and columns[0] == 1:
elif pins.digital_read_pin(DigitalPin.P2) == 1 and columns[1] == 0: updateNumber(0, 0, -1)
changes2(2, 1) elif pins.digital_read_pin(DigitalPin.P2) == 1 and columns[1] == 0:
elif pins.digital_read_pin(DigitalPin.P2) == 0 and columns[1] == 1: updateNumber(1, 1, 2)
changes2(-2, 0) elif pins.digital_read_pin(DigitalPin.P2) == 0 and columns[1] == 1:
elif pins.digital_read_pin(DigitalPin.P3) == 1 and columns[2] == 0: updateNumber(0, 1, -2)
changes4(4, 1) elif pins.digital_read_pin(DigitalPin.P3) == 1 and columns[2] == 0:
elif pins.digital_read_pin(DigitalPin.P3) == 0 and columns[2] == 1: updateNumber(1, 2, 4)
changes4(-4, 0) elif pins.digital_read_pin(DigitalPin.P3) == 0 and columns[2] == 1:
elif pins.digital_read_pin(DigitalPin.P4) == 1 and columns[3] == 0: updateNumber(0, 2, -4)
changes8(8, 1) elif pins.digital_read_pin(DigitalPin.P4) == 1 and columns[3] == 0:
elif pins.digital_read_pin(DigitalPin.P4) == 0 and columns[3] == 1: updateNumber(1, 3, 8)
changes8(-8, 0) elif pins.digital_read_pin(DigitalPin.P4) == 0 and columns[3] == 1:
elif pins.digital_read_pin(DigitalPin.P6) == 1 and columns[4] == 0: updateNumber(0, 3, -8)
changes16(16, 1) elif pins.digital_read_pin(DigitalPin.P6) == 1 and columns[4] == 0:
elif pins.digital_read_pin(DigitalPin.P6) == 0 and columns[4] == 1: updateNumber(1, 4, 16)
changes16(-16, 0) elif pins.digital_read_pin(DigitalPin.P6) == 0 and columns[4] == 1:
elif pins.digital_read_pin(DigitalPin.P7) == 1 and columns[5] == 0: updateNumber(0, 4, -16)
changes32(32, 1) elif pins.digital_read_pin(DigitalPin.P7) == 1 and columns[5] == 0:
elif pins.digital_read_pin(DigitalPin.P7) == 0 and columns[5] == 1: updateNumber(1, 5, 32)
changes32(-32, 0) elif pins.digital_read_pin(DigitalPin.P7) == 0 and columns[5] == 1:
elif pins.digital_read_pin(DigitalPin.P8) == 1 and columns[6] == 0: updateNumber(0, 5, -32)
changes64(64, 1) elif pins.digital_read_pin(DigitalPin.P8) == 1 and columns[6] == 0:
elif pins.digital_read_pin(DigitalPin.P8) == 0 and columns[6] == 1: updateNumber(1, 6, 64)
changes64(-64, 0) elif pins.digital_read_pin(DigitalPin.P8) == 0 and columns[6] == 1:
elif pins.digital_read_pin(DigitalPin.P9) == 1 and columns[7] == 0: updateNumber(0, 6, -64)
changes128(128, 1) elif pins.digital_read_pin(DigitalPin.P9) == 1 and columns[7] == 0:
elif pins.digital_read_pin(DigitalPin.P9) == 0 and columns[7] == 1: updateNumber(1, 7, 128)
changes128(-128, 0) elif pins.digital_read_pin(DigitalPin.P9) == 0 and columns[7] == 1:
elif pins.digital_read_pin(DigitalPin.P10) == 1 and columns[8] == 0: updateNumber(0, 7, -128)
changes256(256, 1) elif pins.digital_read_pin(DigitalPin.P10) == 1 and columns[8] == 0:
elif pins.digital_read_pin(DigitalPin.P10) == 0 and columns[0] == 1: updateNumber(1, 8, 256)
changes256(-256, 0) elif pins.digital_read_pin(DigitalPin.P10) == 0 and columns[8] == 1:
updateNumber(0, 8, -256)
basic.forever(on_forever) basic.forever(on_forever)

22
main.ts
View File

@@ -1,25 +1,23 @@
function updateNumber (flag: number, column: number, difference: number) { function updateNumber(flag: number, column: number, difference: number) {
Denary += difference Denary += difference
columns[column] = flag columns[column] = flag
Display(Denary) Display(Denary)
} }
function Display (number: number) {
function Display(number: number) {
serial.writeString("/") serial.writeString("/")
serial.writeNumber(number) serial.writeNumber(number)
} }
let Denary = 0 let Denary = 0
let columns: number[] = [] let columns : number[] = []
let ready = false serial.redirect(SerialPin.P0, SerialPin.P16, BaudRate.BaudRate9600)
serial.redirect(
SerialPin.P0,
SerialPin.P16,
BaudRate.BaudRate9600
)
columns = [0, 0, 0, 0, 0, 0, 0, 0, 0] columns = [0, 0, 0, 0, 0, 0, 0, 0, 0]
Denary = 0 Denary = 0
Display(Denary) Display(Denary)
ready = true let ready = true
basic.forever(function () { basic.forever(function on_forever() {
if (ready) { if (ready) {
if (pins.digitalReadPin(DigitalPin.P1) == 1 && columns[0] == 0) { if (pins.digitalReadPin(DigitalPin.P1) == 1 && columns[0] == 0) {
updateNumber(1, 0, 1) updateNumber(1, 0, 1)
@@ -58,5 +56,7 @@ basic.forever(function () {
} else if (pins.digitalReadPin(DigitalPin.P10) == 0 && columns[8] == 1) { } else if (pins.digitalReadPin(DigitalPin.P10) == 0 && columns[8] == 1) {
updateNumber(0, 8, -256) updateNumber(0, 8, -256)
} }
} }
}) })

View File

@@ -3,7 +3,6 @@
"description": "", "description": "",
"dependencies": { "dependencies": {
"core": "*", "core": "*",
"radio": "*",
"microphone": "*" "microphone": "*"
}, },
"files": [ "files": [
@@ -12,11 +11,9 @@
"README.md", "README.md",
"main.py" "main.py"
], ],
"testFiles": [ "testFiles": [],
"test.ts"
],
"supportedTargets": [ "supportedTargets": [
"microbit" "microbit"
], ],
"preferredEditor": "blocksprj" "preferredEditor": "pyprj"
} }