22 .name =
"SPI Buttons 1" ,
34 .name =
"SPI Buttons 2" ,
55 this->
spiConfig.peripheral.FirstBit = SPI_FIRSTBIT_LSB;
56 this->
spiConfig.peripheral.CLKPhase = SPI_PHASE_1EDGE;
57 this->
spiConfig.peripheral.CLKPolarity = SPI_POLARITY_LOW;
103 if(newPin !=
nullptr){
111 this->
conf.cutRight =
true;
112 this->
spiConfig.peripheral.CLKPolarity = SPI_POLARITY_LOW;
113 this->
spiConfig.peripheral.CLKPhase = SPI_PHASE_1EDGE;
117 this->
conf.cutRight =
false;
118 this->
spiConfig.peripheral.CLKPhase = SPI_PHASE_2EDGE;
119 this->
spiConfig.peripheral.CLKPolarity = SPI_POLARITY_HIGH;
126 mask = 0xffffffffffffffff;
148 this->
conf.spi_speed = speedPreset;
169 if(this->
conf.cutRight){
172 *buf = *buf & this->
mask;
182 memcpy(buf,this->spi_buf,std::min<uint8_t>(this->bytes,8));
185 if(spiPort.isTaken() || !ready)
189 spiPort.receive_DMA(spi_buf, bytes,
this);
196 for(uint8_t i = 0; i<names.size();i++){
197 reply+= names[i] +
":" + std::to_string(i)+
"\n";
233 replies.emplace_back(this->
getConfig()->cutRight ? 1 : 0);
242 replies.emplace_back((uint8_t)this->
conf.mode);
254 replies.emplace_back((uint8_t)this->
conf.spi_speed);
278 c.
invert = (config_int >> 6) & 0x1;
279 c.
cutRight = (config_int >> 7) & 0x1;
281 c.
cs_num = (config_int_2 & 0x3);
289 val |= (uint16_t)c->
mode << 8;
293 return { val,
val2 };
void registerCommand(const char *cmd, const ID cmdid, const char *help=nullptr, uint32_t flags=0)
virtual void setCommandsEnabled(bool enable)
static CommandStatus handleGetSet(const ParsedCommand &cmd, std::vector< CommandReply > &replies, TVal &value)
CommandHandler(const char *clsname, uint16_t clsid, uint8_t instance=0)
SPIDevice(SPIPort &port, OutputPin csPin)
TVal Flash_ReadDefault(uint16_t adr, TVal def)
bool Flash_Write(uint16_t adr, uint16_t dat)
static void * memcpy(void *dst, const void *src, size_t n)