Hey Andrew,
Once I figure out how to force an address for the toggle array in Swordfish BASIC I suspect my method might look something like this BASIC example, which I hope makes more sense than my previous pseudo C example.
Kind regards, Mike
Code:Dim Tgl(1024) As Byte ' ??? force to $400..$7FF ??? Dim Pulse(3) As Word Dim LastElement As FSR0H.booleans(3) ' Pulse(0) = 3 ' RB0 pulse, 0..1023 usecs Pulse(1) = 11 ' RB1 pulse, 0..1023 usecs Pulse(2) = 12 ' RB2 pulse, 0..1023 usecs ' ' clear the 1024 element toggle array ' FSR0 = AddressOf(Tgl) ' indirect for Tgl(0) Repeat ' clear toggle array POSTINC0 = 0 ' clear 0x400..0x7FF Until LastElement ' ' ' insert 3 output toggle bits into our 1024 interval toggle array ' Tgl(Pulse(0)) = Tgl(Pulse(0)) Or 1 ' insert RB0 toggle bit Tgl(Pulse(1)) = Tgl(Pulse(1)) Or 2 ' insert RB1 toggle bit Tgl(Pulse(2)) = Tgl(Pulse(2)) Or 4 ' insert RB2 toggle bit Tgl(0) = Tgl(0) Xor $FF ' prep Tgl(0) element ' ' implement a button press or some other trigger before falling into ' the output routine (1024 1-usec intervals with 20-MHz clock) ' FSR0 = AddressOf(Tgl) ' Tgl(0..1023), 0x400..0x7FF Repeat ' toggle outputs from toggle array LATB = LATB Xor POSTINC0 ' at 1-usec (5 cycle) intervals Until LastElement ' until end-of-array (0x800)




Bookmarks