This commit is contained in:
parent
c6e8d45679
commit
efd65f8086
1 changed files with 14 additions and 5 deletions
|
|
@ -25,6 +25,7 @@ int main(void)
|
||||||
// définitions
|
// définitions
|
||||||
#define TEMPDMXRX 8 // Longueur de trame mini en reception
|
#define TEMPDMXRX 8 // Longueur de trame mini en reception
|
||||||
#define IOUTDMX_FIN -4
|
#define IOUTDMX_FIN -4
|
||||||
|
#define IOUTDMX_WAIT -5
|
||||||
#define IOUTDMX_IDLE -1
|
#define IOUTDMX_IDLE -1
|
||||||
#define IOUTDMX_BRK -2
|
#define IOUTDMX_BRK -2
|
||||||
#define IOUTDMX_MAB -3
|
#define IOUTDMX_MAB -3
|
||||||
|
|
@ -141,7 +142,9 @@ void CDC_accept()
|
||||||
index_input_pc+=USB_Recv(CDC_RX,tab_input_pc+index_input_pc,513-index_input_pc);
|
index_input_pc+=USB_Recv(CDC_RX,tab_input_pc+index_input_pc,513-index_input_pc);
|
||||||
// si on arrive à 512
|
// si on arrive à 512
|
||||||
if (index_input_pc > 512) {
|
if (index_input_pc > 512) {
|
||||||
etat_input_pc=0;
|
etat_input_pc=0;
|
||||||
|
if(index_output_dmx==IOUTDMX_WAIT)
|
||||||
|
index_output_dmx=IOUTDMX_IDLE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -228,8 +231,13 @@ ISR(USART1_RX_vect)
|
||||||
ISR(USART1_TX_vect)
|
ISR(USART1_TX_vect)
|
||||||
{
|
{
|
||||||
// si l'USART 1 est vide => break
|
// si l'USART 1 est vide => break
|
||||||
if(index_output_dmx==IOUTDMX_FIN)
|
if(index_output_dmx==IOUTDMX_FIN) {
|
||||||
index_output_dmx=IOUTDMX_IDLE;
|
if(syncflag) {
|
||||||
|
syncflag=false;
|
||||||
|
index_output_dmx=IOUTDMX_WAIT;
|
||||||
|
}
|
||||||
|
else index_output_dmx=IOUTDMX_IDLE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// vecteur : USART 1 transmission registre vide
|
// vecteur : USART 1 transmission registre vide
|
||||||
|
|
@ -248,7 +256,6 @@ ISR(USART1_UDRE_vect)
|
||||||
if (index_output_dmx>nb_circuits) {
|
if (index_output_dmx>nb_circuits) {
|
||||||
index_output_dmx=IOUTDMX_FIN;
|
index_output_dmx=IOUTDMX_FIN;
|
||||||
cbi(UCSR1B, UDRIE1);
|
cbi(UCSR1B, UDRIE1);
|
||||||
syncflag=false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -320,8 +327,10 @@ void setup() {
|
||||||
int tmptime;
|
int tmptime;
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
if(index_output_dmx==IOUTDMX_WAIT && interbrk >255)
|
||||||
|
index_output_dmx=IOUTDMX_IDLE;
|
||||||
// Lancement du Break : après fin de transmisson et ecoulement de "dmx_frame_interval" ms depuis le dernier break
|
// Lancement du Break : après fin de transmisson et ecoulement de "dmx_frame_interval" ms depuis le dernier break
|
||||||
if (index_output_dmx==IOUTDMX_IDLE && interbrk >= dmx_frame_interval ) {
|
if (index_output_dmx==IOUTDMX_IDLE && interbrk >= dmx_frame_interval ) {
|
||||||
index_output_dmx=IOUTDMX_BRK;
|
index_output_dmx=IOUTDMX_BRK;
|
||||||
tab_input_dmx[514]= (byte)tmptime ;
|
tab_input_dmx[514]= (byte)tmptime ;
|
||||||
tmptime= interbrk=0;
|
tmptime= interbrk=0;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue