22 .
name =
"SPI Buttons 1" ,
34 .
name =
"SPI Buttons 2" ,
103 if(newPin !=
nullptr){
126 mask = 0xffffffffffffffff;
147 speedPreset = clip<uint8_t,uint8_t>(speedPreset,0,this->
speedPresets.size());
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);
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)
bool reserveCsPin(OutputPin pin)
OutputPin * getCsPin(uint16_t idx)
void configurePort(SPI_InitTypeDef *config)
bool freeCsPin(OutputPin pin)
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)
SPI_InitTypeDef peripheral
bool cspol
CSPOL=true === active low.