Not applicable
Jul 17, 2015
12:15 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jul 17, 2015
12:15 AM
2 Replies
Jul 20, 2015
12:32 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jul 20, 2015
12:32 AM
Hello Bernd,
The FIFO size in the USIC module is 64 words so it would not be possible to send the complete 511 dmx frames at one go.
When further writes are made to a full buffer, a transmit buffer event will be indicated, which seems to be the case here.
Regards,
Min Wei
The FIFO size in the USIC module is 64 words so it would not be possible to send the complete 511 dmx frames at one go.
When further writes are made to a full buffer, a transmit buffer event will be indicated, which seems to be the case here.
Regards,
Min Wei
Not applicable
Jul 20, 2015
10:26 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jul 20, 2015
10:26 PM
I found a solution:
//*********************************************************************************************************************
bool CtrlTXbuffer(void){
bool var = false;
uint8_t x = 0;
x = RD_REG(USIC0_CH1->TRBSR, USIC_CH_TRBSR_TEMPTY_Msk, USIC_CH_TRBSR_TEMPTY_Pos);
if(x == 1){
var = true;
}
else
var = false;
return var;
}//End CtrlTXbuffer
//*********************************************************************************************************************
for(uint16_t i = 0; i < *number_of_channels; i++){
while(CtrlTXbuffer() == false){;}
USIC0_CH1->IN[0] = *dmx_space;
++dmx_space;
}
//*********************************************************************************************************************
bool CtrlTXbuffer(void){
bool var = false;
uint8_t x = 0;
x = RD_REG(USIC0_CH1->TRBSR, USIC_CH_TRBSR_TEMPTY_Msk, USIC_CH_TRBSR_TEMPTY_Pos);
if(x == 1){
var = true;
}
else
var = false;
return var;
}//End CtrlTXbuffer
//*********************************************************************************************************************
for(uint16_t i = 0; i < *number_of_channels; i++){
while(CtrlTXbuffer() == false){;}
USIC0_CH1->IN[0] = *dmx_space;
++dmx_space;
}