verified functionality on ESP32 original

This commit is contained in:
Gregg 2022-01-17 12:52:09 -06:00
parent b6d21fd2c0
commit fd3955f0c2
2 changed files with 6 additions and 12 deletions

View File

@ -15,9 +15,6 @@ Pixel::Pixel(int pin){
txEndMask=RMT.int_ena.val; // save interrupt enable vector txEndMask=RMT.int_ena.val; // save interrupt enable vector
rmt_set_tx_intr_en(rf->getChannel(),true); // enable end-of-transmission interrupt rmt_set_tx_intr_en(rf->getChannel(),true); // enable end-of-transmission interrupt
txEndMask^=RMT.int_ena.val; // find bit that flipped and save as end-of-transmission mask for this channel txEndMask^=RMT.int_ena.val; // find bit that flipped and save as end-of-transmission mask for this channel
Serial.printf("%d %d %08X\n",rf->getChannel(),txEndMask,RMT.int_ena.val);
} }
/////////////////// ///////////////////
@ -66,9 +63,6 @@ void Pixel::setColors(const uint32_t *data, uint32_t nPixels, boolean multiColor
loadData(this); // load first two bytes of data to get started loadData(this); // load first two bytes of data to get started
loadData(this); loadData(this);
for(int i=0;i<status.px->memSize;i++)
Serial.printf("%d %08X\n",i,RMTMEM.chan[rf->getChannel()].data32[i].val);
rmt_tx_start(rf->getChannel(),true); rmt_tx_start(rf->getChannel(),true);
while(status.started); // wait for transmission to be complete while(status.started); // wait for transmission to be complete
@ -93,7 +87,7 @@ uint32_t Pixel::getColorHSV(float h, float s, float v){
void Pixel::loadData(void *arg){ void Pixel::loadData(void *arg){
if((RMT.int_st.val & status.px->txEndMask) >0){ if(RMT.int_st.val & status.px->txEndMask){
RMT.int_clr.val=~0; RMT.int_clr.val=~0;
status.started=false; status.started=false;
return; return;

View File

@ -95,9 +95,9 @@ void setup() {
Serial.println("\n\nHomeSpan Pixel Example\n"); Serial.println("\n\nHomeSpan Pixel Example\n");
// Pixel px0(10); Pixel px0(22);
Pixel px(1); Pixel px1(3);
// Pixel px1(0); Pixel px(21);
uint32_t colors[20]; uint32_t colors[20];
@ -108,10 +108,10 @@ void setup() {
colors[4]=px.getColorRGB(40,40,0); colors[4]=px.getColorRGB(40,40,0);
colors[5]=px.getColorRGB(40,40,0); colors[5]=px.getColorRGB(40,40,0);
colors[6]=px.getColorRGB(0,40,0); colors[6]=px.getColorRGB(0,40,0);
colors[7]=px.getColorRGB(40,0,0); colors[7]=px.getColorRGB(40,0,40);
px.setColors(colors,8); px.setColors(colors,8);
px.setHSV(0,100,40,3); px.setHSV(240,100,40,2);
Serial.println("\n\nDone\n\n"); Serial.println("\n\nDone\n\n");
while(1); while(1);