8000 Proposed solution (untested). · peterhinch/micropython_ir@31df97c · GitHub
[go: up one dir, main page]

Skip to content

Commit 31df97c

Browse files
committed
Proposed solution (untested).
1 parent d520be7 commit 31df97c

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

ir_tx/__init__.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,21 +63,33 @@ def __init__(self, pin, cfreq, asize, duty, verbose):
6363
self.verbose = verbose
6464
self.carrier = False # Notional carrier state while encoding biphase
6565
self.aptr = 0 # Index into array
66+
self._busy = False
6667

6768
def _cb(self, t): # T5 callback, generate a carrier mark or space
69+
self._busy = True
6870
t.deinit()
6971
p = self.aptr
7072
v = self._arr[p]
7173
if v == STOP:
7274
self._ch.pulse_width_percent(self._space) # Turn off IR LED.
75+
self._busy = False
7376
return
7477
self._ch.pulse_width_percent(self._space if p & 1 else self._duty)
7578
self._tim.init(prescaler=84, period=v, callback=self._tcb)
7679
self.aptr += 1
7780

81+
def busy(self):
82+
if ESP32:
83+
return self._rmt.wait_done()
84+
if RP2:
85+
return self._rmt.busy()
86+
return self._busy
87+
7888
# Public interface
7989
# Before populating array, zero pointer, set notional carrier state (off).
8090
def transmit(self, addr, data, toggle=0, validate=False): # NEC: toggle is unused
91+
while self.busy():
92+
pass
8193
t = ticks_us()
8294
if validate:
8395
if addr > self.valid[0] or addr < 0:

0 commit comments

Comments
 (0)
0