adding SPI support
This commit is contained in:
2
libs/microbit/enums.d.ts
vendored
2
libs/microbit/enums.d.ts
vendored
@ -288,8 +288,6 @@ declare namespace led {
|
||||
//% block="none"
|
||||
PullNone = 2,
|
||||
}
|
||||
declare namespace pins {
|
||||
}
|
||||
|
||||
|
||||
declare enum SerialPin {
|
||||
|
@ -71,7 +71,6 @@ MicroBitPin *getPin(int id) {
|
||||
}
|
||||
|
||||
|
||||
//% color=351 weight=30
|
||||
namespace pins {
|
||||
#define PINOP(op) \
|
||||
MicroBitPin *pin = getPin((int)name); \
|
||||
@ -268,4 +267,23 @@ namespace pins {
|
||||
{
|
||||
uBit.i2c.write(address << 1, (char*)buf->payload, buf->length, repeat);
|
||||
}
|
||||
|
||||
SPI* spi = NULL;
|
||||
SPI* allocSPI() {
|
||||
if (spi == NULL)
|
||||
spi = new SPI(MOSI, MISO, SCK);
|
||||
return spi;
|
||||
}
|
||||
|
||||
/**
|
||||
* Write to the SPI slave and return the response
|
||||
* @param value Data to be sent to the SPI slave
|
||||
*/
|
||||
//% help=pins/spi-write weight=5
|
||||
//% blockId=spi_write block="spi write %value"
|
||||
int spiWrite(int value) {
|
||||
auto p = allocSPI();
|
||||
return p->write(value);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ namespace pins {
|
||||
/**
|
||||
* Write one number to a 7-bit I2C address.
|
||||
*/
|
||||
//% help=pins/i2c-write-number
|
||||
//% help=pins/i2c-write-number blockGap=8
|
||||
//% blockId=i2c_writenumber block="i2c write number|at address %address|with value %value|of format %format=i2c_sizeof" weight=6
|
||||
export function i2cWriteNumber(address: number, value: number, format: NumberFormat): void {
|
||||
let buf = createBuffer(pins.sizeOf(format))
|
||||
|
12
libs/microbit/shims.d.ts
vendored
12
libs/microbit/shims.d.ts
vendored
@ -448,10 +448,6 @@ declare namespace led {
|
||||
//% help=led/screenshot shim=led::screenshot
|
||||
function screenshot(): Image;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//% color=351 weight=30
|
||||
declare namespace pins {
|
||||
|
||||
/**
|
||||
@ -573,6 +569,14 @@ declare namespace pins {
|
||||
*/
|
||||
//% repeat.defl=0 shim=pins::i2cWriteBuffer
|
||||
function i2cWriteBuffer(address: number, buf: Buffer, repeat?: boolean): void;
|
||||
|
||||
/**
|
||||
* Write to the SPI slave and return the response
|
||||
* @param value Data to be sent to the SPI slave
|
||||
*/
|
||||
//% help=pins/spi-write weight=5
|
||||
//% blockId=spi_write block="spi write %value" shim=pins::spiWrite
|
||||
function spiWrite(value: number): number;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user