forked from M-Labs/nac3
nac3embedded: RTIO LED blinking demo
This commit is contained in:
parent
7ab762a174
commit
dd998c8afc
|
@ -54,15 +54,50 @@ class Core:
|
||||||
if now_mu() < min_now:
|
if now_mu() < min_now:
|
||||||
at_mu(min_now)
|
at_mu(min_now)
|
||||||
|
|
||||||
|
@kernel
|
||||||
|
class TTLOut:
|
||||||
|
channel: int32
|
||||||
|
target_o: int32
|
||||||
|
|
||||||
|
@kernel
|
||||||
|
def __init__(self, channel: int32):
|
||||||
|
self.channel = channel
|
||||||
|
self.target_o = channel << 8
|
||||||
|
|
||||||
|
@kernel
|
||||||
|
def output(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@kernel
|
||||||
|
def set_o(self, o: bool):
|
||||||
|
rtio_output(self.target_o, 1 if o else 0)
|
||||||
|
|
||||||
|
@kernel
|
||||||
|
def on(self):
|
||||||
|
self.set_o(True)
|
||||||
|
|
||||||
|
@kernel
|
||||||
|
def off(self):
|
||||||
|
self.set_o(False)
|
||||||
|
|
||||||
|
@kernel
|
||||||
|
def pulse_mu(self, duration: int64):
|
||||||
|
self.on()
|
||||||
|
delay_mu(duration)
|
||||||
|
self.off()
|
||||||
|
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
class Demo:
|
class Demo:
|
||||||
@kernel
|
@kernel
|
||||||
def run(self):
|
def run(self):
|
||||||
core = Core()
|
core = Core()
|
||||||
|
led = TTLOut(0)
|
||||||
|
|
||||||
core.reset()
|
core.reset()
|
||||||
rtio_init()
|
while True:
|
||||||
|
led.pulse_mu(int64(100000000))
|
||||||
|
delay_mu(int64(100000000))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
Loading…
Reference in New Issue