Exemplo n.º 1
0
 def spi_send_dma(self, data):
     self.trans.length = len(
         data) * 8  # Length is in bytes, transaction length is in bits.
     self.trans.tx_buffer = data  # data should be allocated as DMA-able memory
     self.trans.user = self.spi_callbacks
     #esp.spi_device_transmit(self.spi, self.trans)
     esp.spi_device_queue_trans(self.spi, self.trans, -1)
    def disp_spi_send(self, data):
        if len(data) == 0: return  # no need to send anything

        self.trans.length = len(
            data) * 8  # Length is in bytes, transaction length is in bits.
        self.trans.tx_buffer = data

        esp.spi_device_queue_trans(self.spi, self.trans, -1)
        esp.spi_device_get_trans_result(self.spi, self.trans_res, -1)
Exemplo n.º 3
0
    def disp_spi_send(self, data, dma=False):
        if len(data) == 0: return  # no need to send anything

        self.trans.length = len(
            data) * 8  # Length is in bytes, transaction length is in bits.
        self.trans.tx_buffer = data

        if dma:
            self.trans.user = self.spi_callbacks
            esp.spi_device_queue_trans(self.spi, self.trans, -1)
        else:
            self.trans.user = None
            esp.spi_device_polling_transmit(self.spi, self.trans)
Exemplo n.º 4
0
 def xpt_cmds(self, cmds):
     cmd_count = int(len(cmds))
     for i in range(0, cmd_count):
         self.trans[i].cmd = cmds[i]
         esp.spi_device_queue_trans(self.spi, self.trans[i], -1)
     result = []
     for i in range(0, cmd_count):
         esp.spi_device_get_trans_result(self.spi, self.trans_result_ptr,
                                         -1)
         buf = self.trans[i].rx_buffer.__dereference__(2)
         value = (int(buf[0]) << 4) + (int(
             buf[1]) >> 4)  # value is in the 12 higher bits, network order
         if value == int(self.MAX_RAW_COORD):
             value = 0
         result.append(value)
     return tuple(result)