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
#define TEMPDMXRX 8 // Longueur de trame mini en reception
#define IOUTDMX_FIN -4
#define IOUTDMX_WAIT -5
#define IOUTDMX_IDLE -1
#define IOUTDMX_BRK -2
#define IOUTDMX_MAB -3
@ -142,6 +143,8 @@ void CDC_accept()
// si on arrive à 512
if (index_input_pc > 512) {
etat_input_pc=0;
if(index_output_dmx==IOUTDMX_WAIT)
index_output_dmx=IOUTDMX_IDLE;
}
break;
@ -228,8 +231,13 @@ ISR(USART1_RX_vect)
ISR(USART1_TX_vect)
{
// si l'USART 1 est vide => break
if(index_output_dmx==IOUTDMX_FIN)
index_output_dmx=IOUTDMX_IDLE;
if(index_output_dmx==IOUTDMX_FIN) {
if(syncflag) {
syncflag=false;
index_output_dmx=IOUTDMX_WAIT;
}
else index_output_dmx=IOUTDMX_IDLE;
}
}
// vecteur : USART 1 transmission registre vide
@ -248,7 +256,6 @@ ISR(USART1_UDRE_vect)
if (index_output_dmx>nb_circuits) {
index_output_dmx=IOUTDMX_FIN;
cbi(UCSR1B, UDRIE1);
syncflag=false;
}
}
@ -320,6 +327,8 @@ void setup() {
int tmptime;
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
if (index_output_dmx==IOUTDMX_IDLE && interbrk >= dmx_frame_interval ) {
index_output_dmx=IOUTDMX_BRK;