Hello,

This is a small code to transmit data from a PIC to another via serial RF link using LINX RF modules.

The transmitter is powered-up only when data needs to be sent (like a simple remote control).

After power up, there is always trash data like "UÔ*u˜" sent by the PIC before a correct message is transmitted. As long as the PIC is powered, all messages will be correct.

I found out, to avoid this trash data, I need to comment the TRISIO statement like in the code hereunder (?!).

But doing so, the command Led = CMCON.6 will stop working and I need a workaround like the IF..THEN commands for the Led.

Any idea what I'm doing wrong?

Code:
' Fuses  PIC12F675
@ __CONFIG _CPD_OFF &_BODEN_OFF &_MCLRE_OFF &_PWRTE_OFF &_WDT_OFF &_XT_OSC

' Registers   76543210
OPTION_REG = %10000000 'GPIO Pull-Ups disabled
INTCON     = %00000000 'Set Interrupts
ANSEL      = %00000010 'Select analog inputs
WPU        = %00000000 'Weak pull-ups (check OPTION_REG)
GPIO       = %00000000 'Set PORTS
    '//TRISIO     = %00000010 'Set I/Os
CMCON      = %01000100 'Comparator Module settings
VRCON      = %10001011 'Voltage reference

' Defines
DEFINE OSC 4

' Variables
D_Out   VAR GPIO.0  'Serial Data Out
BattLvl VAR GPIO.1  'Analog Input
Led     VAR GPIO.2  'Led is ON if battery level is low

' Program
PAUSE 500   'Delay for VREF to settle
MAIN:
    IF CMCON.6 = 1 THEN
        HIGH Led
      ELSE
        LOW Led
    ENDIF
    
    '//Led = CMCON.6
    
    SEROUT2 D_Out, 813,["TEST", DEC1 CMCON.6] '1200bps
    PAUSE 1000
    GOTO MAIN
END