Use constant for end of memory
This commit is contained in:
parent
7fd7e15bd4
commit
c9536b0cf2
@ -1,5 +1,6 @@
|
|||||||
namespace i2c_fram {
|
namespace i2c_fram {
|
||||||
const devaddr = 0x50;
|
const devaddr = 0x50;
|
||||||
|
const memend = 0x7fff;
|
||||||
|
|
||||||
//% shim=ksrt::panic
|
//% shim=ksrt::panic
|
||||||
function panic(code: number) { }
|
function panic(code: number) { }
|
||||||
@ -7,7 +8,7 @@ namespace i2c_fram {
|
|||||||
function die() { panic(142) }
|
function die() { panic(142) }
|
||||||
|
|
||||||
export function readByte(addr: number) {
|
export function readByte(addr: number) {
|
||||||
if (addr < 0 || addr > 0xffff)
|
if (addr < 0 || addr > memend)
|
||||||
die();
|
die();
|
||||||
|
|
||||||
let buf = pins.createBuffer(2)
|
let buf = pins.createBuffer(2)
|
||||||
@ -21,7 +22,7 @@ namespace i2c_fram {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function writeByte(addr: number, val: number) {
|
export function writeByte(addr: number, val: number) {
|
||||||
if (addr < 0 || addr > 0xffff)
|
if (addr < 0 || addr > memend)
|
||||||
die();
|
die();
|
||||||
|
|
||||||
if (val < 0 || val > 0xff)
|
if (val < 0 || val > 0xff)
|
||||||
@ -37,7 +38,7 @@ namespace i2c_fram {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function readBuffer(addr: number, length: number) {
|
export function readBuffer(addr: number, length: number) {
|
||||||
if (addr < 0 || length < 0 || (addr + length) > 0xffff)
|
if (addr < 0 || length < 0 || (addr + length) > memend)
|
||||||
die();
|
die();
|
||||||
let buf = pins.createBuffer(length)
|
let buf = pins.createBuffer(length)
|
||||||
for (let i = 0; i < length; ++i)
|
for (let i = 0; i < length; ++i)
|
||||||
@ -46,7 +47,7 @@ namespace i2c_fram {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function writeBuffer(addr:number, buf: Buffer) {
|
export function writeBuffer(addr:number, buf: Buffer) {
|
||||||
if (addr < 0 || (addr + buf.length) > 0xffff)
|
if (addr < 0 || (addr + buf.length) > memend)
|
||||||
die();
|
die();
|
||||||
for (let i = 0; i < buf.length; ++i)
|
for (let i = 0; i < buf.length; ++i)
|
||||||
writeByte(addr + i, buf[i])
|
writeByte(addr + i, buf[i])
|
||||||
|
@ -12,5 +12,5 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"microbit": "file:../microbit"
|
"microbit": "file:../microbit"
|
||||||
},
|
},
|
||||||
"installedVersion": "hrakif"
|
"installedVersion": "hhneqa"
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user