42 lines
851 B
C
42 lines
851 B
C
|
#include <wiringPi.h>
|
||
|
#include <wiringPiSPI.h>
|
||
|
#include <stdint.h>
|
||
|
|
||
|
#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);
|
||
|
}
|