diff --git a/recv/pixmod_recv_1v0/main.c b/recv/pixmod_recv_1v0/main.c index e2982b0..168ae56 100644 --- a/recv/pixmod_recv_1v0/main.c +++ b/recv/pixmod_recv_1v0/main.c @@ -157,7 +157,7 @@ int uart_putchar(char c, FILE *stream) { uint16_t tim1_ic_val = 0; char tim1_ic_flag = 0; -uint16_t read_chained_timer(void) { +uint16_t read_chained_timer(void){ uint8_t sreg = SREG; cli(); diff --git a/xmit/main.py b/xmit/main.py index b2029fb..62d104b 100644 --- a/xmit/main.py +++ b/xmit/main.py @@ -1,22 +1,42 @@ from machine import Pin, PWM import time + ir_led = PWM(Pin("GP18")) ir_led.freq(38000) ir_led.duty_u16(0) + def emit_pulse(duration_us): - ir_led.duty_u16(32768) # 50% duty cycle - time.sleep_us(duration_us) ir_led.duty_u16(0) # 0% duty cycle + time.sleep_us(duration_us) + ir_led.duty_u16(32768) # 50% duty cycle + +def xmit_bin(msg_data_bin, msg_len): + ir_led.duty_u16(32768) # 50% duty cycle + time.sleep_us(4000) + + for i in range(msg_len): + if(msg_data_bin & (1<<(msg_len-1))): + emit_pulse(1000) + else: + emit_pulse(2080) + + msg_data_bin <<= 1 + time.sleep_us(500) + + time.sleep_us(2000) + ir_led.duty_u16(0) # 50% duty cycle + try: while True: - emit_pulse(200) - time.sleep_ms(10) - - emit_pulse(800) - time.sleep_ms(10) + #xmit_bin(0b010101, 6) + xmit_bin(7774, 16) + time.sleep_ms(100) + + xmit_bin(15964, 16) + time.sleep_ms(100) except KeyboardInterrupt: ir_led.deinit()