Updates to how number is generated. More decomposition and modules

This commit is contained in:
Alexander Davis
2021-06-19 18:44:27 +01:00
parent 3180b9ad57
commit 74378f8554
6 changed files with 179 additions and 108 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 608 KiB

After

Width:  |  Height:  |  Size: 630 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 KiB

After

Width:  |  Height:  |  Size: 634 KiB

File diff suppressed because one or more lines are too long

147
main.py
View File

@@ -1,55 +1,94 @@
def updateNumber(flag: number, column: number, difference: number): function updateNumber () {
global Denary Denary = 0
Denary += difference for (let item = 0; item <= columns.length - 1; item++) {
columns[column] = flag if (columns[item]) {
Display(Denary) Denary += columnValues[item]
def Display(number: number): }
serial.write_string("/") }
serial.write_number(number) updateDisplay(Denary)
}
function updateColumn () {
for (let item = 0; item <= columns.length - 1; item++) {
updateFlag(item, sensePins[item])
}
}
function switchSensors () {
if (pins.digitalReadPin(DigitalPin.P1) == 1) {
sensePins[0] = true
} else if (pins.digitalReadPin(DigitalPin.P1) == 0) {
sensePins[0] = false
}
if (pins.digitalReadPin(DigitalPin.P2) == 1) {
sensePins[1] = true
} else if (pins.digitalReadPin(DigitalPin.P2) == 0) {
sensePins[1] = false
}
if (pins.digitalReadPin(DigitalPin.P3) == 1) {
sensePins[2] = true
} else if (pins.digitalReadPin(DigitalPin.P3) == 0) {
sensePins[2] = false
}
if (pins.digitalReadPin(DigitalPin.P4) == 1) {
sensePins[3] = true
} else if (pins.digitalReadPin(DigitalPin.P4) == 0) {
sensePins[3] = false
}
if (pins.digitalReadPin(DigitalPin.P6) == 1) {
sensePins[4] = true
} else if (pins.digitalReadPin(DigitalPin.P6) == 0) {
sensePins[4] = false
}
if (pins.digitalReadPin(DigitalPin.P7) == 1) {
sensePins[5] = true
} else if (pins.digitalReadPin(DigitalPin.P7) == 0) {
sensePins[5] = false
}
if (pins.digitalReadPin(DigitalPin.P8) == 1) {
sensePins[6] = true
} else if (pins.digitalReadPin(DigitalPin.P8) == 0) {
sensePins[6] = false
}
if (pins.digitalReadPin(DigitalPin.P9) == 1) {
sensePins[7] = true
} else if (pins.digitalReadPin(DigitalPin.P9) == 0) {
sensePins[7] = false
}
if (pins.digitalReadPin(DigitalPin.P10) == 1) {
sensePins[8] = true
} else if (pins.digitalReadPin(DigitalPin.P10) == 0) {
sensePins[8] = false
}
}
function updateFlag (column: number, flag: boolean) {
if (flag) {
columns[column] = true
} else if (!(flag)) {
columns[column] = false
}
}
function updateDisplay (number: number) {
serial.writeString("/")
serial.writeNumber(number)
}
let Denary = 0
let columnValues: number[] = []
let columns: boolean[] = []
let sensePins: boolean[] = []
serial.redirect(
SerialPin.P0,
SerialPin.P16,
BaudRate.BaudRate9600
)
sensePins = [false, false, false, false, false, false, false, false, false]
columns = [false, false, false, false, false, false, false, false, false]
columnValues = [1, 2, 4, 8, 16, 32, 64, 128, 256]
Denary = 0 Denary = 0
columns: List[number] = [] updateDisplay(Denary)
serial.redirect(SerialPin.P0, SerialPin.P16, BaudRate.BAUD_RATE9600) let ready = true
columns = [0, 0, 0, 0, 0, 0, 0, 0, 0] basic.forever(function () {
Denary = 0 if (ready) {
Display(Denary) switchSensors()
ready = True updateColumn()
updateNumber()
def on_forever(): }
if ready: })
if pins.digital_read_pin(DigitalPin.P1) == 1 and columns[0] == 0:
updateNumber(1, 0, 1)
elif pins.digital_read_pin(DigitalPin.P1) == 0 and columns[0] == 1:
updateNumber(0, 0, -1)
elif pins.digital_read_pin(DigitalPin.P2) == 1 and columns[1] == 0:
updateNumber(1, 1, 2)
elif pins.digital_read_pin(DigitalPin.P2) == 0 and columns[1] == 1:
updateNumber(0, 1, -2)
elif pins.digital_read_pin(DigitalPin.P3) == 1 and columns[2] == 0:
updateNumber(1, 2, 4)
elif pins.digital_read_pin(DigitalPin.P3) == 0 and columns[2] == 1:
updateNumber(0, 2, -4)
elif pins.digital_read_pin(DigitalPin.P4) == 1 and columns[3] == 0:
updateNumber(1, 3, 8)
elif pins.digital_read_pin(DigitalPin.P4) == 0 and columns[3] == 1:
updateNumber(0, 3, -8)
elif pins.digital_read_pin(DigitalPin.P6) == 1 and columns[4] == 0:
updateNumber(1, 4, 16)
elif pins.digital_read_pin(DigitalPin.P6) == 0 and columns[4] == 1:
updateNumber(0, 4, -16)
elif pins.digital_read_pin(DigitalPin.P7) == 1 and columns[5] == 0:
updateNumber(1, 5, 32)
elif pins.digital_read_pin(DigitalPin.P7) == 0 and columns[5] == 1:
updateNumber(0, 5, -32)
elif pins.digital_read_pin(DigitalPin.P8) == 1 and columns[6] == 0:
updateNumber(1, 6, 64)
elif pins.digital_read_pin(DigitalPin.P8) == 0 and columns[6] == 1:
updateNumber(0, 6, -64)
elif pins.digital_read_pin(DigitalPin.P9) == 1 and columns[7] == 0:
updateNumber(1, 7, 128)
elif pins.digital_read_pin(DigitalPin.P9) == 0 and columns[7] == 1:
updateNumber(0, 7, -128)
elif pins.digital_read_pin(DigitalPin.P10) == 1 and columns[8] == 0:
updateNumber(1, 8, 256)
elif pins.digital_read_pin(DigitalPin.P10) == 0 and columns[8] == 1:
updateNumber(0, 8, -256)
basic.forever(on_forever)

136
main.ts
View File

@@ -1,62 +1,94 @@
function updateNumber(flag: number, column: number, difference: number) { function updateNumber () {
Denary = 0
Denary += difference for (let item = 0; item <= columns.length - 1; item++) {
columns[column] = flag if (columns[item]) {
Display(Denary) Denary += columnValues[item]
}
}
updateDisplay(Denary)
} }
function updateColumn () {
function Display(number: number) { for (let item2 = 0; item2 <= columns.length - 1; item2++) {
updateFlag(item2, sensePins[item2])
}
}
function switchSensors () {
if (pins.digitalReadPin(DigitalPin.P1) == 1) {
sensePins[0] = true
} else if (pins.digitalReadPin(DigitalPin.P1) == 0) {
sensePins[0] = false
}
if (pins.digitalReadPin(DigitalPin.P2) == 1) {
sensePins[1] = true
} else if (pins.digitalReadPin(DigitalPin.P2) == 0) {
sensePins[1] = false
}
if (pins.digitalReadPin(DigitalPin.P3) == 1) {
sensePins[2] = true
} else if (pins.digitalReadPin(DigitalPin.P3) == 0) {
sensePins[2] = false
}
if (pins.digitalReadPin(DigitalPin.P4) == 1) {
sensePins[3] = true
} else if (pins.digitalReadPin(DigitalPin.P4) == 0) {
sensePins[3] = false
}
if (pins.digitalReadPin(DigitalPin.P6) == 1) {
sensePins[4] = true
} else if (pins.digitalReadPin(DigitalPin.P6) == 0) {
sensePins[4] = false
}
if (pins.digitalReadPin(DigitalPin.P7) == 1) {
sensePins[5] = true
} else if (pins.digitalReadPin(DigitalPin.P7) == 0) {
sensePins[5] = false
}
if (pins.digitalReadPin(DigitalPin.P8) == 1) {
sensePins[6] = true
} else if (pins.digitalReadPin(DigitalPin.P8) == 0) {
sensePins[6] = false
}
if (pins.digitalReadPin(DigitalPin.P9) == 1) {
sensePins[7] = true
} else if (pins.digitalReadPin(DigitalPin.P9) == 0) {
sensePins[7] = false
}
if (pins.digitalReadPin(DigitalPin.P10) == 1) {
sensePins[8] = true
} else if (pins.digitalReadPin(DigitalPin.P10) == 0) {
sensePins[8] = false
}
}
function updateFlag (column: number, flag: boolean) {
if (flag) {
columns[column] = true
} else if (!(flag)) {
columns[column] = false
}
}
function updateDisplay (number: number) {
serial.writeString("/") serial.writeString("/")
serial.writeNumber(number) serial.writeNumber(number)
} }
let Denary = 0 let Denary = 0
let columns : number[] = [] let columnValues: number[] = []
serial.redirect(SerialPin.P0, SerialPin.P16, BaudRate.BaudRate9600) let columns: boolean[] = []
columns = [0, 0, 0, 0, 0, 0, 0, 0, 0] let sensePins: boolean[] = []
serial.redirect(
SerialPin.P0,
SerialPin.P16,
BaudRate.BaudRate9600
)
sensePins = [false, false, false, false, false, false, false, false, false]
columns = [false, false, false, false, false, false, false, false, false]
columnValues = [1, 2, 4, 8, 16, 32, 64, 128, 256]
Denary = 0 Denary = 0
Display(Denary) updateDisplay(Denary)
let ready = true let ready = true
basic.forever(function on_forever() { basic.forever(function () {
if (ready) { if (ready) {
if (pins.digitalReadPin(DigitalPin.P1) == 1 && columns[0] == 0) { switchSensors()
updateNumber(1, 0, 1) updateColumn()
} else if (pins.digitalReadPin(DigitalPin.P1) == 0 && columns[0] == 1) { updateNumber()
updateNumber(0, 0, -1)
} else if (pins.digitalReadPin(DigitalPin.P2) == 1 && columns[1] == 0) {
updateNumber(1, 1, 2)
} else if (pins.digitalReadPin(DigitalPin.P2) == 0 && columns[1] == 1) {
updateNumber(0, 1, -2)
} else if (pins.digitalReadPin(DigitalPin.P3) == 1 && columns[2] == 0) {
updateNumber(1, 2, 4)
} else if (pins.digitalReadPin(DigitalPin.P3) == 0 && columns[2] == 1) {
updateNumber(0, 2, -4)
} else if (pins.digitalReadPin(DigitalPin.P4) == 1 && columns[3] == 0) {
updateNumber(1, 3, 8)
} else if (pins.digitalReadPin(DigitalPin.P4) == 0 && columns[3] == 1) {
updateNumber(0, 3, -8)
} else if (pins.digitalReadPin(DigitalPin.P6) == 1 && columns[4] == 0) {
updateNumber(1, 4, 16)
} else if (pins.digitalReadPin(DigitalPin.P6) == 0 && columns[4] == 1) {
updateNumber(0, 4, -16)
} else if (pins.digitalReadPin(DigitalPin.P7) == 1 && columns[5] == 0) {
updateNumber(1, 5, 32)
} else if (pins.digitalReadPin(DigitalPin.P7) == 0 && columns[5] == 1) {
updateNumber(0, 5, -32)
} else if (pins.digitalReadPin(DigitalPin.P8) == 1 && columns[6] == 0) {
updateNumber(1, 6, 64)
} else if (pins.digitalReadPin(DigitalPin.P8) == 0 && columns[6] == 1) {
updateNumber(0, 6, -64)
} else if (pins.digitalReadPin(DigitalPin.P9) == 1 && columns[7] == 0) {
updateNumber(1, 7, 128)
} else if (pins.digitalReadPin(DigitalPin.P9) == 0 && columns[7] == 1) {
updateNumber(0, 7, -128)
} else if (pins.digitalReadPin(DigitalPin.P10) == 1 && columns[8] == 0) {
updateNumber(1, 8, 256)
} else if (pins.digitalReadPin(DigitalPin.P10) == 0 && columns[8] == 1) {
updateNumber(0, 8, -256)
}
} }
}) })

View File

@@ -16,5 +16,5 @@
"supportedTargets": [ "supportedTargets": [
"microbit" "microbit"
], ],
"preferredEditor": "pyprj" "preferredEditor": "blocksprj"
} }