Serial data transfer receive problem

chuakinling

New Member
I eventually using 3 picaxe chip, 1 - 18M2 and 2 - 20X2.

Each picaxe have their own different program purpose so i use serial to communicate each other. So my problem here is i have send a serial code from the first chip 18M2 to second chip 20X2 and the second chip will transfer the exactly same code to third chip 20X2.

the first to second chips send the code via serout and serin command, the second and third chips is send by this command sertxd and serrxd.

i use the digital signal measurement the output and input of the serial command and finally i found out the third chip 20X2 is transmit out a different serial code out

here is the example
i make sure all my boudrate are same so i use setfreq M8 at all the chip
i send the code is 00 0C 00 04 01 in hex
this code is coming out from first chip 18M2 and received by second chip 20X2 and the second chip is sended to third chip but when i direct the third chip send back what exactly it receive it give me this code 00 12 00 04 01 in hex without changing the parameter or execute and other command.

Please help thanks
 

hippy

Technical Support
Staff member
As srnet suggests it is probably just a case of how one visualises the number; 12 decimal is $0C or 0x0C hexadecimal, and also %1100 binary.

And welcome to the PICAXE forum.
 

Goeytex

Senior Member
We will need to see your code in order to tell exactly what is happening, but like the others I suspect is is a matter of hex vs decimal.

If you serial send 0x0C, the serial data is actually sent as binary 0b1100. If you serial send decimal 12, it also sent as binary 0b1100. If either of these are sent to the terminal with sertxd (#b0) they they will display as decimal 12.

Example:
Code:
b0 = $0C
b1 = 12 
sertxd (#b0,cr,lf)     [COLOR="#008000"]'// displays  "12" in the terminal[/COLOR]
sertxd (#b1,cr,lf)    [COLOR="#008000"] '// displays  "12" in the terminal[/COLOR]
 

chuakinling

New Member
ok i post my whole three program code at here.
Starting at first is my first chip and ready to transfer to second chip (the code is sending out correctly on this chip while sending to the second chip)
Code:
;=================================================================================;

'PICAXE_18M2

;=================================================================================;

SETFREQ M8
SYMBOL I1 = PINC.0        ;INPUT CONTACT 1
SYMBOL I2 = PINC.1        ;INPUT CONTACT 2
SYMBOL I3 = PINC.6        ;INPUT CONTACT 3
SYMBOL I4 = PINC.7        ;INPUT CONTACT 4
SYMBOL I5 = PINB.6        ;INPUT CONTACT 5
SYMBOL I6 = PINB.7        ;INPUT CONTACT 6
SYMBOL I7 = PINB.4        ;INPUT CONTACT 7
SYMBOL I8 = PINB.5        ;INPUT CONTACT 8
SYMBOL RT = B.0            ;REQUEST TO SEND
SYMBOL CT = PINB.1        ;CLEAR TO SEND
SYMBOL SO = B.3            ;SERIAL TRANSMIT
SYMBOL SI = PINB.2        ;SERIAL RECEIVE

MAIN:
DO
IF I1 = 0 THEN IN1
IF I2 = 0 THEN IN2
IF I3 = 0 THEN IN3
IF I4 = 0 THEN IN4
IF I5 = 0 THEN IN5
IF I6 = 0 THEN IN6
IF I7 = 0 THEN IN7
IF I8 = 0 THEN IN8
LOOP

IN1:
GOSUB RTS
SEROUT SO, T9600_8, (0,12,0,1,1)
DO WHILE I1 = 0
LOOP UNTIL I1 = 1
GOTO MAIN

IN2:
GOSUB RTS
SEROUT SO, T9600_8, (0,12,0,2,1)
DO WHILE I2 = 0
LOOP UNTIL I2 = 1
GOTO MAIN

IN3:
GOSUB RTS
SEROUT SO, T9600_8, (0,12,0,3,1)
DO WHILE I3 = 0
LOOP UNTIL I3 = 1
GOTO MAIN

IN4:
GOSUB RTS
SEROUT SO, T9600_8, (0,12,0,4,1)
DO WHILE I4 = 0
LOOP UNTIL I4 = 1
GOTO MAIN

IN5:
GOSUB RTS
SEROUT SO, T9600_8, (0,12,0,5,1)
DO WHILE I5 = 0
LOOP UNTIL I5 = 1
GOTO MAIN

IN6:
GOSUB RTS
SEROUT SO, T9600_8, (0,12,0,6,1)
DO WHILE I6 = 0
LOOP UNTIL I6 = 1
GOTO MAIN

IN7:
GOSUB RTS
SEROUT SO, T9600_8, (0,12,0,7,1)
DO WHILE I7 = 0
LOOP UNTIL I7 = 1
GOTO MAIN

IN8:
GOSUB RTS
SEROUT SO, T9600_8, (0,12,0,8,1)
DO WHILE I8 = 0
LOOP UNTIL I8 = 1
GOTO MAIN

RTS:
HIGH RT
DO WHILE CT = 0
LOOP UNTIL CT = 1
LOW RT
PAUSE 1
RETURN

The bottom of the code is the  for second chip (the transmit code no problem and send what exactly received from the previous chip)
;=================================================================================;

'PICAXE_20X2

;=================================================================================;

SETFREQ M8
SYMBOL IRT1 = PINC.5        ;REQUEST TO SEND FOR INPUT 1
SYMBOL ICT1 = C.4            ;CLEAR TO SEND FOR INPUT 1
SYMBOL IRT2 = PINC.1        ;REQUEST TO SEND FOR INPUT 2
SYMBOL ICT2 = C.0            ;CLEAR TO SEND FOR INPUT 2
SYMBOL ISO  = C.3            ;SERIAL OUTPUT FOR INPUT
SYMBOL ISI  = C.2            ;SERIAL INPUT FOR INPUT
SYMBOL ORT  = PINC.6        ;REQUEST TO SEND FOR OUTPUT
SYMBOL OCT  = C.7            ;CLEAR TO SEND FOR OUTPUT
SYMBOL O1   = B.0            ;OUTPUT SIGNAL 1
SYMBOL O2   = B.7            ;OUTPUT SIGNAL 2
SYMBOL O3   = B.1            ;OUTPUT SIGNAL 3
SYMBOL O4   = B.6            ;OUTPUT SIGNAL 4
SYMBOL O5   = B.2            ;OUTPUT SIGNAL 5
SYMBOL O6   = B.5            ;OUTPUT SIGNAL 6
SYMBOL O7   = B.3            ;OUTPUT SIGNAL 7
SYMBOL O8   = B.4            ;OUTPUT SIGNAL 8

INITIALIZE:
LOW O1
LOW O2
LOW O3
LOW O4
LOW O5
LOW O6
LOW O7
LOW O8
PULSOUT O1,50000
PULSOUT O2,50000
PULSOUT O3,50000
PULSOUT O4,50000
PULSOUT O5,50000
PULSOUT O6,50000
PULSOUT O7,50000
PULSOUT O8,50000

MAIN:
LOW ICT1
LOW ICT2
LOW OCT
DO
IF IRT1 = 1 THEN RESEND
IF IRT2 = 1 THEN RESEND
IF ORT = 1 THEN OPERATE
LOOP

RESEND:
HIGH ICT1
HIGH ICT2
SERIN [500,MAIN],ISI ,T9600_8, B10, B11, B12, B13, B14
LOW ICT1
LOW ICT2
HIGH OCT
DO WHILE ORT = 0
LOOP UNTIL ORT = 1
PAUSE 25
SERTXD (B10, B11, B12, B13, B14)
LOW OCT
GOTO MAIN

OPERATE:
HIGH OCT
SERRXD [1000,MAIN], B15, B16, B17, B18, B19
LOW OCT
IF B16 = 12 THEN 
    IF B18 = 0 AND B19 = 0 THEN
        LOW O1
        LOW O2
        LOW O3
        LOW O4
        LOW O5
        LOW O6
        LOW O6
        LOW O7
        LOW O8
    ELSEIF B18 = 1 AND B19 = 1 THEN
        HIGH O1
        LOW O2
        LOW O3
        LOW O4
        LOW O5
        LOW O6
        LOW O6
        LOW O7
        LOW O8
    ELSEIF B18 = 2 AND B19 =1 THEN
        LOW O1
        HIGH O2
        LOW O3
        LOW O4
        LOW O5
        LOW O6
        LOW O6
        LOW O7
        LOW O8
    ELSEIF B18 = 3 AND B19 =1 THEN
        LOW O1
        LOW O2
        HIGH O3
        LOW O4
        LOW O5
        LOW O6
        LOW O6
        LOW O7
        LOW O8
    ELSEIF B18 = 4 AND B19 =1 THEN
        LOW O1
        LOW O2
        LOW O3
        HIGH O4
        LOW O5
        LOW O6
        LOW O6
        LOW O7
        LOW O8
    ELSEIF B18 = 5 AND B19 =1 THEN
        LOW O1
        LOW O2
        LOW O3
        LOW O4
        HIGH O5
        LOW O6
        LOW O6
        LOW O7
        LOW O8
    ELSEIF B18 = 6 AND B19 =1 THEN
        LOW O1
        LOW O2
        LOW O3
        LOW O4
        LOW O5
        LOW O6
        HIGH O6
        LOW O7
        LOW O8
    ELSEIF B18 = 7 AND B19 =1 THEN
        LOW O1
        LOW O2
        LOW O3
        LOW O4
        LOW O5
        LOW O6
        LOW O6
        HIGH O7
        LOW O8
    ELSEIF B18 = 8 AND B19 =1 THEN
        LOW O1
        LOW O2
        LOW O3
        LOW O4
        LOW O5
        LOW O6
        LOW O6
        LOW O7
        HIGH O8
    ELSE
        HIGH O1
        HIGH O2
        HIGH O3
        HIGH O4
        HIGH O5
        HIGH O6
        HIGH O6
        HIGH O7
        HIGH O8
        WAIT 2
        LOW O1
        LOW O2
        LOW O3
        LOW O4
        LOW O5
        LOW O6
        LOW O6
        LOW O7
        LOW O8
    ENDIF
ENDIF
GOTO MAIN
 
Last edited by a moderator:

chuakinling

New Member
The third code is as below.(from my signal measurement the incoming serial code is correct)
"SERTXD (B15,B16, B17, B18, B19)" In between the code is where I try to capture the data for me to se what is exactly store in my ram.
Code:
;=================================================================================;

'PICAXE_20X2
'FIRMWARE NO    ***


;=================================================================================;

SETFREQ M8
SYMBOL IRT1 = PINC.5        ;REQUEST TO SEND FOR INPUT 1
SYMBOL ICT1 = C.4            ;CLEAR TO SEND FOR INPUT 1
SYMBOL IRT2 = PINC.3        ;REQUEST TO SEND FOR INPUT 2
SYMBOL ICT2 = C.2            ;CLEAR TO SEND FOR INPUT 2
SYMBOL IRT3 = PINC.0        ;REQUEST TO SEND FOR INPUT 3
SYMBOL ICT3 = C.1            ;CLEAR TO SEND FOR INPUT 3
SYMBOL IRT4 = PINB.0        ;REQUEST TO SEND FOR INPUT 4
SYMBOL ICT4 = B.1            ;CLEAR TO SEND FOR INPUT 4
SYMBOL IRT5 = PINB.3        ;REQUEST TO SEND FOR INPUT 5
SYMBOL ICT5 = B.2            ;CLEAR TO SEND FOR INPUT 5
SYMBOL IRT6 = PINB.5        ;REQUEST TO SEND FOR INPUT 6
SYMBOL ICT6 = B.4            ;CLEAR TO SEND FOR INPUT 6
SYMBOL OUT  = B.7            ;OUTPUT SIGNAL ACKNOWLEDGE AND SERIAL OUT
SYMBOL IN   = PINB.6        ;INPUT SIGNAL ACKNOWLEDGE AND SERIAL IN

INITIALISE:
LET B1 = 1

MAIN:
LOW ICT1
LOW ICT2
LOW ICT3
LOW ICT4
LOW ICT5
LOW ICT6
DO
IF IRT1 = 1 THEN MAIN1
IF IRT2 = 1 THEN MAIN2
IF IRT3 = 1 THEN MAIN3
IF IRT4 = 1 THEN MAIN4
IF IRT5 = 1 THEN MAIN5
IF IRT6 = 1 THEN MAIN6
LOOP


MAIN1:
HIGH ICT1
SERRXD B15, B16, B17, B18, B19
LOW ICT1
"SERTXD (B15,B16, B17, B18, B19)"
PAUSE 10
IF B15 = 0 AND B16 = 28 THEN
    LET B0 = B18
    GOTO PROCESS
    LET B1 = B0
ELSE
    SERTXD (B15,B16,B17,B18,B19,255)
ENDIF    
GOTO MAIN        

MAIN2:
HIGH ICT2
SERRXD [1000,MAIN], B10, B11, B12, B13, B14
LOW ICT2
IF B10 = 0 AND B11 = 12 THEN
    LET B0 = B13 + 8
    GOTO PROCESS
    LET B1 = B0
ENDIF    
GOTO MAIN    

MAIN3:
HIGH ICT3
SERRXD [1000,MAIN], B10, B11, B12, B13, B14
LOW ICT3
IF B10 = 0 AND B11 = 12 THEN
    LET B0 = B13 + 16
    GOTO PROCESS
    LET B1 = B0
ENDIF    
GOTO MAIN    

MAIN4:
HIGH ICT4
SERRXD [1000,MAIN], B10, B11, B12, B13, B14
LOW ICT4
IF B10 = 0 AND B11 = 12 THEN
    LET B0 = B13 + 24
    GOTO PROCESS
    LET B1 = B0
ENDIF    
GOTO MAIN    

MAIN5:
HIGH ICT5
SERRXD [1000,MAIN], B10, B11, B12, B13, B14
LOW ICT5
IF B10 = 0 AND B11 = 12 THEN
    LET B0 = B13 + 32
    GOTO PROCESS
    LET B1 = B0
ENDIF    
GOTO MAIN    

MAIN6:
HIGH ICT6
SERRXD [1000,MAIN], B10, B11, B12, B13, B14
LOW ICT6
IF B10 = 0 AND B11 = 12 THEN
    LET B0 = B13 + 40
    GOTO PROCESS
    LET B1 = B0
ENDIF    
GOTO MAIN    

PROCESS:
SELECT CASE B0
CASE 1
    CALL PREVIOUS_INPUT
    CALL ON_1
    SERTXD (0, 12, 0, 1, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 1, 1)

CASE 2
    CALL PREVIOUS_INPUT
    CALL ON_1
    SERTXD (0, 12, 0, 2, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 2, 1)

CASE 3
    CALL PREVIOUS_INPUT
    CALL ON_1
    SERTXD (0, 12, 0, 3, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 3, 1)

CASE 4
    CALL PREVIOUS_INPUT
    CALL ON_1
    SERTXD (0, 12, 0, 4, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 4, 1)

CASE 5
    CALL PREVIOUS_INPUT
    CALL ON_1
    SERTXD (0, 12, 0, 5, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 5, 1)

CASE 6
    CALL PREVIOUS_INPUT
    CALL ON_1
    SERTXD (0, 12, 0, 6, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 6, 1)

CASE 7
    CALL PREVIOUS_INPUT
    CALL ON_1
    SERTXD (0, 12, 0, 7, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 7, 1)

CASE 8
    CALL PREVIOUS_INPUT
    CALL ON_1
    SERTXD (0, 12, 0, 8, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 8, 1)

CASE 9
    CALL PREVIOUS_INPUT
    CALL ON_2
    SERTXD (0, 12, 0, 1, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 9, 1)

CASE 10
    CALL PREVIOUS_INPUT
    CALL ON_2
    SERTXD (0, 12, 0, 2, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 10, 1)

CASE 11
    CALL PREVIOUS_INPUT
    CALL ON_2
    SERTXD (0, 12, 0, 3, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 11, 1)

CASE 12
    CALL PREVIOUS_INPUT
    CALL ON_2
    SERTXD (0, 12, 0, 4, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 12, 1)

CASE 13
    CALL PREVIOUS_INPUT
    CALL ON_2
    SERTXD (0, 12, 0, 5, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 13, 1)

CASE 14
    CALL PREVIOUS_INPUT
    CALL ON_2
    SERTXD (0, 12, 0, 6, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 14, 1)

CASE 15
    CALL PREVIOUS_INPUT
    CALL ON_2
    SERTXD (0, 12, 0, 7, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 15, 1)

CASE 16
    CALL PREVIOUS_INPUT
    CALL ON_2
    SERTXD (0, 12, 0, 8, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 16, 1)

CASE 17
    CALL PREVIOUS_INPUT
    CALL ON_3
    SERTXD (0, 12, 0, 1, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 17, 1)

CASE 18
    CALL PREVIOUS_INPUT
    CALL ON_3
    SERTXD (0, 12, 0, 2, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 18, 1)

CASE 19
    CALL PREVIOUS_INPUT
    CALL ON_3
    SERTXD (0, 12, 0, 3, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 19, 1)

CASE 20
    CALL PREVIOUS_INPUT
    CALL ON_3
    SERTXD (0, 12, 0, 4, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 20, 1)

CASE 21
    CALL PREVIOUS_INPUT
    CALL ON_3
    SERTXD (0, 12, 0, 5, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 21, 1)

CASE 22
    CALL PREVIOUS_INPUT
    CALL ON_3
    SERTXD (0, 12, 0, 6, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 22, 1)

CASE 23
    CALL PREVIOUS_INPUT
    CALL ON_3
    SERTXD (0, 12, 0, 7, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 23, 1)

CASE 24
    CALL PREVIOUS_INPUT
    CALL ON_3
    SERTXD (0, 12, 0, 8, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 24, 1)

CASE 25
    CALL PREVIOUS_INPUT
    CALL ON_4
    SERTXD (0, 12, 0, 1, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 25, 1)

CASE 26
    CALL PREVIOUS_INPUT
    CALL ON_4
    SERTXD (0, 12, 0, 2, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 26, 1)

CASE 27
    CALL PREVIOUS_INPUT
    CALL ON_4
    SERTXD (0, 12, 0, 3, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 27, 1)

CASE 28
    CALL PREVIOUS_INPUT
    CALL ON_4
    SERTXD (0, 12, 0, 4, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 28, 1)

CASE 29
    CALL PREVIOUS_INPUT
    CALL ON_4
    SERTXD (0, 12, 0, 5, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 29, 1)

CASE 30
    CALL PREVIOUS_INPUT
    CALL ON_4
    SERTXD (0, 12, 0, 6, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 30, 1)

CASE 31
    CALL PREVIOUS_INPUT
    CALL ON_4
    SERTXD (0, 12, 0, 7, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 31, 1)

CASE 32
    CALL PREVIOUS_INPUT
    CALL ON_4
    SERTXD (0, 12, 0, 8, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 32, 1)

CASE 33
    CALL PREVIOUS_INPUT
    CALL ON_5
    SERTXD (0, 12, 0, 1, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 33, 1)

CASE 34
    CALL PREVIOUS_INPUT
    CALL ON_5
    SERTXD (0, 12, 0, 2, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 34, 1)

CASE 35
    CALL PREVIOUS_INPUT
    CALL ON_5
    SERTXD (0, 12, 0, 3, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 35, 1)

CASE 36
    CALL PREVIOUS_INPUT
    CALL ON_5
    SERTXD (0, 12, 0, 4, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 36, 1)

CASE 37
    CALL PREVIOUS_INPUT
    CALL ON_5
    SERTXD (0, 12, 0, 5, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 37, 1)

CASE 38
    CALL PREVIOUS_INPUT
    CALL ON_5
    SERTXD (0, 12, 0, 6, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 38, 1)

CASE 39
    CALL PREVIOUS_INPUT
    CALL ON_5
    SERTXD (0, 12, 0, 7, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 39, 1)

CASE 40
    CALL PREVIOUS_INPUT
    CALL ON_5
    SERTXD (0, 12, 0, 8, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 40, 1)

CASE 41
    CALL PREVIOUS_INPUT
    CALL ON_6
    SERTXD (0, 12, 0, 1, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 41, 1)

CASE 42
    CALL PREVIOUS_INPUT
    CALL ON_6
    SERTXD (0, 12, 0, 2, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 42, 1)

CASE 43
    CALL PREVIOUS_INPUT
    CALL ON_6
    SERTXD (0, 12, 0, 3, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 43, 1)

CASE 44
    CALL PREVIOUS_INPUT
    CALL ON_6
    SERTXD (0, 12, 0, 4, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 44, 1)

CASE 45
    CALL PREVIOUS_INPUT
    CALL ON_6
    SERTXD (0, 12, 0, 5, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 45, 1)

CASE 46
    CALL PREVIOUS_INPUT
    CALL ON_6
    SERTXD (0, 12, 0, 6, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 46, 1)

CASE 47
    CALL PREVIOUS_INPUT
    CALL ON_6
    SERTXD (0, 12, 0, 7, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 47, 1)

CASE 48
    CALL PREVIOUS_INPUT
    CALL ON_6
    SERTXD (0, 12, 0, 8, 1)
    SEROUT OUT, T9600_8, (0, 12, 0, 48, 1)
ELSE
    SERTXD (0, 0, 0, 0, 2)
ENDSELECT
GOTO MAIN

PREVIOUS_INPUT:
SELECT CASE B1
CASE 1 TO 8
    GOSUB OFF_1

CASE 9 TO 16
    GOSUB OFF_2

CASE 17 TO 24
    GOSUB OFF_3

CASE 25 TO 32
    GOSUB OFF_4

CASE 33 TO 40
    GOSUB OFF_5

CASE 41 TO 48
    GOSUB OFF_6
ENDSELECT
RETURN


OFF_1:
HIGH ICT1
DO WHILE IRT1 = 0
LOOP UNTIL IRT1 = 1
LOW ICT1
SERTXD (0,12,0,0,0)
RETURN
    
OFF_2:
HIGH ICT2
DO WHILE IRT2 = 0
LOOP UNTIL IRT2 = 1
LOW ICT2
SERTXD (0,12,0,0,0)
RETURN


OFF_3:
HIGH ICT3
DO WHILE IRT3 = 0
LOOP UNTIL IRT3 = 1
LOW ICT3
SERTXD (0,12,0,0,0)
RETURN

OFF_4:
HIGH ICT4
DO WHILE IRT4 = 0
LOOP UNTIL IRT4 = 1
LOW ICT4
SERTXD (0,12,0,0,0)
RETURN

OFF_5:
HIGH ICT5
DO WHILE IRT5 = 0
LOOP UNTIL IRT5 = 1
LOW ICT5
SERTXD (0,12,0,0,0)
RETURN

OFF_6:
HIGH ICT6
DO WHILE IRT6 = 0
LOOP UNTIL IRT6 = 1
LOW ICT6
SERTXD (0,12,0,0,0)
RETURN

ON_1:
HIGH ICT1
DO WHILE IRT1 = 0
LOOP UNTIL IRT1 = 1
LOW ICT1
RETURN

ON_2:
HIGH ICT2
DO WHILE IRT2 = 0
LOOP UNTIL IRT2 = 1
LOW ICT2
RETURN

ON_3:
HIGH ICT3
DO WHILE IRT3 = 0
LOOP UNTIL IRT3 = 1
LOW ICT3
RETURN

ON_4:
HIGH ICT4
DO WHILE IRT4 = 0
LOOP UNTIL IRT4 = 1
LOW ICT4
RETURN

ON_5:
HIGH ICT5
DO WHILE IRT5 = 0
LOOP UNTIL IRT5 = 1
LOW ICT5
RETURN

ON_6:
HIGH ICT6
DO WHILE IRT6 = 0
LOOP UNTIL IRT6 = 1
LOW ICT6
RETURN
 
Last edited by a moderator:

chuakinling

New Member
We will need to see your code in order to tell exactly what is happening, but like the others I suspect is is a matter of hex vs decimal.

If you serial send 0x0C, the serial data is actually sent as binary 0b1100. If you serial send decimal 12, it also sent as binary 0b1100. If either of these are sent to the terminal with sertxd (#b0) they they will display as decimal 12.

Example:
Code:
b0 = $0C
b1 = 12 
sertxd (#b0,cr,lf)     [COLOR="#008000"]'// displays  "12" in the terminal[/COLOR]
sertxd (#b1,cr,lf)    [COLOR="#008000"] '// displays  "12" in the terminal[/COLOR]
All is in Hex format and i actually write wrong sorry for that is from 0x0C become 0x1C
 
Top