' ' Program: RF Transmitter module ' Author: (c) 2008 by A Fox Consulting & Design ' http://www.afox-consulting.com ' Date: 01/23/2008 ' ' {$STAMP BS2} ' {$PBASIC 2.5} _RFOut PIN 0 _SPKR PIN 1 BAUD CON 16780 ' N2400 junk CON $55 ' Wake-up sync CON $83 ' This is our 16-byte data packet we will use for our RF ' communications. Format: ' b00 b01 b02 b03 b04 b05 b06 b07 b08 b09 b10 b11 b12 b13 b14 b15 ' $83 ...................data................................ CRC DataPacket VAR Byte DataBlock VAR Byte(14) crc VAR Byte i VAR Nib j VAR Nib k VAR Byte b VAR Byte Message DATA "FOX WAS HERE " Main: ' Build data packet DataPacket = sync FOR i = 0 TO 13 READ Message+i, DataBlock(i) NEXT crc = 0 GOSUB CalcCRC ' Send data packet SEROUT _RFOut, BAUD, [junk, junk, junk, junk] SEROUT _RFOut, BAUD, [STR DataPacket\15, crc] FREQOUT _SPKR, 50, 400 PAUSE 250 GOTO main CalcCRC: FOR i = 0 TO 13 b = DataBlock(i) FOR j = 0 TO 7 k = b ^ CRC & %0001 IF k > 0 THEN k = $8C crc = crc >> 1 ^ k b = b >> 1 NEXT NEXT RETURN