MCPcopy Create free account
hub / github.com/2dom/PxMatrix / fm612xWriteRegister

Method fm612xWriteRegister

PxMatrix.h:391–419  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

389
390#ifdef ESP32
391inline void PxMATRIX::fm612xWriteRegister(uint16_t reg_value, uint8_t reg_position)
392{
393 spi_t * spi = SPI.bus();
394 // reg_value = 0x1234; debug
395
396 for(int i=0; i<47; i++)
397 SPI_2BYTE(reg_value);
398
399 spiSimpleTransaction(spi);
400
401 spi->dev->mosi_dlen.usr_mosi_dbitlen = 16-reg_position-1;
402 spi->dev->miso_dlen.usr_miso_dbitlen = 0;
403 spi->dev->data_buf[0] = reg_value>>8;
404 spi->dev->cmd.usr = 1;
405 while(spi->dev->cmd.usr);
406
407 GPIO_REG_SET(1 << _LATCH_PIN);
408
409 spi->dev->mosi_dlen.usr_mosi_dbitlen = (reg_position-8)-1;
410 spi->dev->data_buf[0] = reg_value>>(reg_position-8);
411 spi->dev->cmd.usr = 1;
412 while(spi->dev->cmd.usr);
413 spiEndTransaction(spi);
414
415 SPI_BYTE(reg_value&0xff);
416
417 GPIO_REG_CLEAR(1 << _LATCH_PIN);
418
419}
420#else
421inline void PxMATRIX::writeRegister(uint16_t reg_value, uint8_t reg_position)
422{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected