From 01efdee04a406611f6daf664071e984a2d29576d Mon Sep 17 00:00:00 2001 From: Joerg Hoppe Date: Tue, 25 Jun 2019 16:47:17 +0200 Subject: [PATCH] DL11W interrupt tests&fixes --- 10.02_devices/2_src/dl11w.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/10.02_devices/2_src/dl11w.cpp b/10.02_devices/2_src/dl11w.cpp index bda6036..b7674e6 100644 --- a/10.02_devices/2_src/dl11w.cpp +++ b/10.02_devices/2_src/dl11w.cpp @@ -390,9 +390,11 @@ void slu_c::worker_xmt(void) { if (xmt_maint) // put sent byte into rcv buffer, receiver will poll it rs232.LoopbackByte(xmt_buffer); + bool old_xmt_ready = xmt_ready ; xmt_ready = 1; - set_rcsr_dati_value(); // generates interrupt set_xcsr_dati_value(); + if (old_xmt_ready == 0 && xmt_ready == 1 && xmt_intr_enable) + interrupt(intr_vector.value + 4, intr_level.value); // has rcv or xmt interrupt priority on maintennace loop back } assert(!pthread_mutex_unlock(&on_after_xmt_register_access_mutex));