#include #include #include #include "LS7366R.h" void ls7366rWriteCmd(uint8_t c) { uint8_t buf[1]; buf[0] = c; wiringPiSPIDataRW(SPI_CHAN, buf, 1); } void ls7366rWriteCmdData(uint8_t c, uint8_t d) { uint8_t buf[2]; buf[0] = c; buf[1] = d; wiringPiSPIDataRW(SPI_CHAN, buf, 2); } uint8_t ls7366rRead8(uint8_t c) { uint8_t buf[2]; buf[0] = c; wiringPiSPIDataRW(SPI_CHAN, buf, 2); return buf[1]; } uint32_t ls7366rRead32(uint8_t c) { uint8_t buf[5]; buf[0] = c; wiringPiSPIDataRW(SPI_CHAN, buf, 5); uint32_t r = ((uint32_t)buf[1] << 24) | ((uint32_t)buf[2] << 16) | ((uint32_t)buf[3] << 8) | ((uint32_t)buf[4]); return r; } void ls7366rInit() { ls7366rWriteCmd(CMD_CLR | REG_STR); ls7366rWriteCmd(CMD_CLR | REG_CNTR); ls7366rWriteCmdData(CMD_WR | REG_MDR0, MDR0_ILO); }