Something else popped into my head. The time between the start of each byte is exactly 1,250uS. The time it takes to transmit the total packet is 20mS, which means there are 16 digits. Can I do all of this manually? To be more specific, can I use GOSUB's for each number and just specify exactly how long I need the pulses to be? The data is predictable and I'm not seeing anything that doesn't look strange. There are only numbers transmitted and they are 0-9. My thought is something like this:
Code:MAINLOOP: 'GATHER NUMBERS TO BE TRANSMITTED SELECT CASE D0 CASE 0 GOSUB ZERO CASE 1 GOSUB ONE END SELECT SELECT CASE D1 CASE 0 GOSUB ZERO CASE 1 GOSUB ONE END SELECT SELECT CASE D2 CASE 0 GOSUB ZERO CASE 1 GOSUB ONE END SELECT ...... SELECT CASE D15 CASE 0 GOSUB ZERO CASE 1 GOSUB ONE END SELECT PAUSE 5 GOTO MAINLOOP ..... ZERO: DO3=1 PAUSEUS 550 DO3=0 PAUSEUS 75 DO3=1 PAUSEUS 50 DO3=0 PAUSEUS 575 RETURN ONE: DO3=1 PAUSEUS 50 DO3=0 PAUSEUS 75 DO3=1 PAUSEUS 175 DO3=0 PAUSEUS 300 DO3=1 PAUSEUS 50 DO3=0 PAUSEUS 600 RETURN TWO: DO3=1 PAUSEUS 250 DO3=0 PAUSEUS 75 DO3=1 PAUSEUS 150 DO3=0 PAUSEUS 75 DO3=1 PAUSEUS 250 DO3=0 PAUSEUS 450 RETURN THREE: DO3=1 PAUSEUS 400 DO3=0 PAUSEUS 150 DO3=1 PAUSEUS 250 DO3=0 PAUSEUS 450 RETURN FOUR: DO3=1 PAUSEUS 75 DO3=0 PAUSEUS 75 DO3=1 PAUSEUS 150 DO3=0 PAUSEUS 150 DO3=1 PAUSEUS 250 DO3=0 PAUSEUS 550 RETURN FIVE: DO3=1 PAUSEUS 150 DO3=0 PAUSEUS 75 DO3=1 PAUSEUS 150 DO3=0 PAUSEUS 75 DO3=1 PAUSEUS 325 DO3=0 PAUSEUS 475 RETURN SIX: DO3=1 PAUSEUS 150 DO3=0 PAUSEUS 75 DO3=1 PAUSEUS 475 DO3=0 PAUSEUS 550 RETURN SEVEN: DO3=1 PAUSEUS 325 DO3=0 PAUSEUS 300 DO3=1 PAUSEUS 150 DO3=0 PAUSEUS 475 RETURN EIGHT: DO3=1 PAUSEUS 800 DO3=0 PAUSEUS 450 RETURN NINE: DO3=1 PAUSEUS 325 DO3=0 PAUSEUS 150 DO3=1 PAUSEUS 325 DO3=0 PAUSEUS 450 RETURN




Bookmarks