OK... I'm about to give birth to a cow here. I've been at this for a few hours now and still can't find where the problem lies. Call it a brain fart or a senior moment or....
This is a simple transmit routine that takes an array of letters, converts them to Manchester code and the spits them out a serial port.
The above Manchester conversion routine and the one supplied by Ioannis produce the same result.Code:COUNTERA var Byte COUNTERB var byte TRANSMIT var Byte MYDATA var byte [9] MYDATACTR var byte MANCHESTERWORD var Word Encoded var word BYTECTR var byte DataPort var PortB.0 EncodedData var word [4] START: mydata [0]= "T" mydata [1]= "E" mydata [2]= "S" mydata [3]= "T" mydata [4]= "." for mydatactr=0 to 4 transmit = mydata [MYdatactr] gosub encodemanchester ' take the transmit variable and convert it to Manchester (EncodedData word) serout2 dataport,17197, [encodeddata.highbyte[mydatactr]] serout2 dataport,17197, [encodeddata.lowbyte[mydatactr]] So far so good. With the array "TEST." the serial port is spitting out 99 9A 9A 99 99 A5 99 9A A6 56 in HEX, which is a correct Manchester conversion. next mydatactr FOR COUNTERB=0 TO 1 serout2 dataport,17197, [$55,$55,$55,$55,$55,"STA"] ' send preamble for mydatactr=0 to 4 serout2 dataport,17197, [encodeddata.highbyte[mydatactr]] serout2 dataport,17197, [encodeddata.lowbyte[mydatactr]] This is where it gets weird. The EncodedData array has not been tinkered in any way (I don't see where) yet the serial port is now spitting out 99 9A A5 99 9A A5 56 9A A6 56 .... WTH?????? Notice the first two and last two bytes did not change but the stuff in the middle has.... what am I missing here? next MYDATACTR pause 100 NEXT COUNTERB pause 3000 goto start EncodeManchester: manchesterword=0 For BYTECTR=0 TO 7 If transmit.0=1 then ManchesterWord.14=1 else ManchesterWord.15=1 endif If bytectr<7 then ManchesterWord=ManchesterWord>>2 transmit=transmit>>1 Next BYTECTR encodeddata.lowbyte[mydatactr]=manchesterword.lowbyte encodeddata.highbyte[mydatactr]=manchesterword.highbyte Return
Any help would be greatly appreciated.... BTW, I'm using MCS 2.1.0.6 with PBPPro 2.46.
Thanks!!!





Bookmarks