Allow seperate buffer with offset
This commit is contained in:
@@ -93,8 +93,8 @@ class PIO_DMA_Transfer():
|
|||||||
self.dma_chan.CTRL_TRIG.INCR_WRITE = 0
|
self.dma_chan.CTRL_TRIG.INCR_WRITE = 0
|
||||||
self.dma_chan.CTRL_TRIG.INCR_READ = 1
|
self.dma_chan.CTRL_TRIG.INCR_READ = 1
|
||||||
|
|
||||||
def start_transfer(self, buffer):
|
def start_transfer(self, buffer, offset=0):
|
||||||
self.dma_chan.READ_ADDR_REG = uctypes.addressof(buffer)
|
self.dma_chan.READ_ADDR_REG = uctypes.addressof(buffer) + offset
|
||||||
self.dma_chan.CTRL_TRIG.EN = 1
|
self.dma_chan.CTRL_TRIG.EN = 1
|
||||||
|
|
||||||
def transfer_count(self):
|
def transfer_count(self):
|
||||||
|
|||||||
@@ -29,8 +29,10 @@ class WS2812B:
|
|||||||
self.invert = invert
|
self.invert = invert
|
||||||
self.pio_dma = dma.PIO_DMA_Transfer(state_machine+4, state_machine, 8, num_leds*3)
|
self.pio_dma = dma.PIO_DMA_Transfer(state_machine+4, state_machine, 8, num_leds*3)
|
||||||
|
|
||||||
def show(self):
|
def show(self, array=None, offset=0):
|
||||||
self.pio_dma.start_transfer(self.ar)
|
if array is None:
|
||||||
|
array = self.ar
|
||||||
|
self.pio_dma.start_transfer(array, offset)
|
||||||
|
|
||||||
def set(self, i, color):
|
def set(self, i, color):
|
||||||
self.ar[i*3] = int(color[1]*self.brightness)
|
self.ar[i*3] = int(color[1]*self.brightness)
|
||||||
|
|||||||
Reference in New Issue
Block a user