weird data


Closed Thread
Results 1 to 1 of 1

Thread: weird data

  1. #1
    Join Date
    May 2006
    Posts
    19

    Default weird data

    I'm working on a local positioning system. I have one robot that sends a soundpulse and 3 receiver ("satalites") that receive that pulse and send all the timing data back to the robot.

    I have one master receiver that has the wireless connection to the robot AND is connected (wired) to both other slave receivers. The master sends a signal to all devices (robot, and 2 slaves) to send a sound pulse or to start counting so this starts synchrome.

    I have a problem with receiving the data from the slaves:

    -If I give both slaves the "right" (serout2) code then the master will receive nothing and times out when trying to receive the data from the slaves

    -if I give one slave(doesn't mater witch one) a "wrong" code (serout) THEN the master will time out ONLY when trying to receive the data from the bad slave and it will receive the data from the other slave

    -if i give both slaves the wrong (serout) code then it will time out on both again

    why doesn't it work when i give both slaves the right code? and how do i fix it?

    this is my full code:

    Master:
    Code:
    define OSC 20
    ANSEL = 0
    TRISC=%00000100
    POKE $19, 7
    'dEFINE CHAR_PACING 10
    INCLUDE "modedefs.bas"
    
    S_In    var PORTC.1                             'data line to PORTC.1 on both slave receivers
    S_Out   var PORTC.4                             'data line to wireless transmitter and 
                                                    'PORTC.0 on both slave receivers
    Led     var PORTC.3
    Pin     Var PORTC.2                             'Soundpulse In
    Cnt     var byte
    ResM     var word
    ResS1    var word
    ResS2    var word
    
    init:
    
        gosub Startblink
        input pin
        resM = 0
        resS1 = 0
        resS2 = 0
        
    Main:
        SEROUT s_out, N2400,["1234rt"]              'give a signal to start a soundpulse
        rctime Pin, 0, resM                         'record time for sound to reach this receiver
        pause 300
        Serout2 S_Out, 17197, ["SA"]                'Give signal to slave 1 to send data
        SERIN2 S_in, 17197, 200, TimeOut1, [WAIT ("A"),  ResS1.LOWBYTE, ResS1.HIGHBYTE]
                                                    'receive data from slave 1
    S2_In:
        PAUSE 100
        Serout2 S_out, 17197, ["SB"]                'Give signal to slave 2 to send data
        SERIN2 S_in, 17197, 200, TimeOut2, [WAIT ("B"),  ResS2.LOWBYTE, ResS2.HIGHBYTE] 
                                                    'receive data from slave 2
    Dat_Send:
        gosub blink
        SEROUT s_out, N2400,["1234ul", resM.lowbyte, resM.highbyte, resS1.lowbyte, resS1.highbyte , resS2.lowbyte, resS2.highbyte]
                                                    'send all data back to robot
        pause 20
    goto main
        
    
        
        
        
    Timeout1:
        resS1 = 11111                               'error code for slave 1
    goto S2_in
     
    Timeout2:                                       'error code for slave 2
        resS2 = 22222
    goto Dat_Send 
    
        
    
    
    Blink:                                          'blink
        high led
        pause 3
        low led
    return
    
    Startblink:                                     'nice blink to show the device is started
        for cnt = 1 to 10
        high led
        pause 5 * (16-cnt)
        low  led
        pause 5 * (16-cnt)
        next 
    return
    slaves (this is the code for the slaves. there are 2 small differences between the code from slave1 and slave2 (the "A" changes in "B"))

    Code:
    define OSC 20
    ANSEL = 0
    TRISC=%00000100
    POKE $19, 7
    'dEFINE CHAR_PACING 10
    INCLUDE "modedefs.bas"
    
    S_In    var PORTC.0                 'dataline to PORTC.4 on master receiver
    S_Out   var PORTC.1                 'dataline to PORTC.1 on master receiver
    Led     var PORTC.3
    Pin     Var PORTC.2                 'Soundpulse In
    Cnt     var byte
    Res     var word
    
    
    init:
        gosub Startblink
        input pin
        res = 0
        
    Main:
    
        serin2 S_in, 16780, [wait("t")]      'wait counting untill soundpulse is sent
        rctime Pin, 0, res                   'record time for sound to reach this receiver
        serin2 S_in, 17197, [wait("A")]      'wait to send data
        'serin2 S_in, 17197, [wait("B")] this is the other code for the second slave                       
        gosub blink
    
    
        SEROUT2 s_out, 17197,["A",res.lowbyte,res.highbyte]'send data back to master
        'SEROUT2 s_out, 17197,["B",res.lowbyte,res.highbyte] this is the other code for the second slave    
    'if i change this SEROUT2 to SEROUT  and leave the other slave at SEROUT2 then the OTHER slave works (see post) 
    
    
    goto main
        
    
        
    Blink:                             'blink
        high led
        pause 10
        low led
    return
    
    Startblink:                        'nice blink to show the device is started
        for cnt = 1 to 10
        high led
        pause 5 * (16-cnt)
        low  led
        pause 5 * (16-cnt)
        next 
    return
    Last edited by chriroz; - 12th November 2006 at 16:21.

Similar Threads

  1. Using Nokia LCD
    By BobP in forum mel PIC BASIC Pro
    Replies: 300
    Last Post: - 3rd May 2018, 04:47
  2. Nokia 3310 display text
    By chai98a in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 26th August 2007, 03:39
  3. Big characters on HD44780 4x20
    By erpalma in forum mel PIC BASIC Pro
    Replies: 23
    Last Post: - 7th January 2007, 02:21
  4. LCD + bar graph
    By DynamoBen in forum mel PIC BASIC Pro
    Replies: 13
    Last Post: - 5th October 2005, 14:50
  5. Sinus calculating !
    By Don Mario in forum mel PIC BASIC Pro
    Replies: 29
    Last Post: - 28th November 2004, 23:56

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts