from microbit import pin13, pin15, pin14
#SPI

""" The SPI module lets you talk to a device connected to your board using a serial 
peripheral interface (SPI) bus. SPI uses a so-called master-slave architecture with 
a single master. You will need to specify the connections for three signals:

    SCLK : Serial Clock (output from master).
    MOSI : Master Output, Slave Input (output from master).
    MISO : Master Input, Slave Output (output from slave). """

#Functions

def init(baudrate=1000000, bits=8, mode=0, sclk=pin13, mosi=pin15, miso=pin14):
    """ Initialize SPI communication with the specified parameters on the specified pins. 
    Note that for correct communication, the parameters have to be the same on both 
    communicating devices.

    The baudrate defines the speed of communication.

    The bits defines the size of bytes being transmitted. Currently only bits=8 is 
    supported. However, this may change in the future.

    The mode determines the combination of clock polarity and phase according to the 
    following convention, with polarity as the high order bit and phase as the low 
    order bit:
    SPI Mode    Polarity (CPOL) Phase (CPHA)
    0           0 	            0
    1 	        0 	            1
    2 	        1 	            0
    3 	        1 	            1

    Polarity (aka CPOL) 0 means that the clock is at logic value 0 when idle and goes high 
    (logic value 1) when active; polarity 1 means the clock is at logic value 1 when idle 
    and goes low (logic value 0) when active. Phase (aka CPHA) 0 means that data is sampled 
    on the leading edge of the clock, and 1 means on the trailing edge 
    (viz. https://en.wikipedia.org/wiki/Signal_edge).

    The sclk, mosi and miso arguments specify the pins to use for each type of signal. """
    pass
def read(nbytes):
    """  Read at most nbytes. Returns what was read. """
    pass

def write(buffer):
    """ Write the buffer of bytes to the bus. """
    pass

def write_readinto(Out, In):
    """ Write the out buffer to the bus and read any response into the in buffer. 
    The length of the buffers should be the same. The buffers can be the same object. """
    pass