This commit is contained in:
tzim 2014-05-11 22:40:44 +00:00
parent c6e8d45679
commit efd65f8086

View file

@ -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
@ -142,6 +143,8 @@ void CDC_accept()
// 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,6 +327,8 @@ 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;