Question about ARRAYWRITE


Closed Thread
Results 1 to 14 of 14

Hybrid View

  1. #1
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,612


    Did you find this post helpful? Yes | No

    Default

    Hi Al,
    Yes, that's possible, as long as you have control over the transmitting devices or if you don't care if you miss some data by cycling thru the devices listening to one device at a time. If they are self contained units sending data on their own, at will, then it's going to be tricky. If I've missed your point please enlighten me :-)

    Now, the OP doesn't say how the transmitting devices works and/or if he has "control" over how they works. Hopefully a multidrop network can be implemented in which case one USART would be enough.

    /Henrik.

  2. #2
    Join Date
    May 2008
    Location
    Italy
    Posts
    825


    Did you find this post helpful? Yes | No

    Default

    Yes, that's possible, as long as you have control over the transmitting devices
    Yes, Henrik the control is necessary, devices must tx only on request, without it the OP will not achieve much.

    Al.
    All progress began with an idea

  3. #3
    Join Date
    Dec 2008
    Location
    Los Angeles, CA
    Posts
    156


    Did you find this post helpful? Yes | No

    Talking

    Thanks for the info! This particular application is a polled system, and my local PIC needs to process data and format the output into a predefined 'message'. Then when I am polled, I need to forward the data on to the host. I think ARRAYWRITE is the way to go. I was thinking about using an eeprom, but this is definately faster. I am not sure of the time between the polls yet though, and am concerned my data will back up, so need some message buffer space. Thanks very much for your help.

  4. #4
    Join Date
    Dec 2008
    Location
    Los Angeles, CA
    Posts
    156


    Did you find this post helpful? Yes | No

    Default

    One interesting thing...

    It seems that ARRAYWRITE does not work with indexed variables.

    ARRAYWRITE MSG ["VALUE: ",DEC TMR[X]]

    I'm just copying the value of TMR[X] to another variable first for now. Is this a bug, or just not accounted for or ??? Great command nonetheless.

  5. #5
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by circuitpro View Post
    It seems that ARRAYWRITE does not work with indexed variables.
    ARRAYWRITE MSG ["VALUE: ",DEC TMR[X]]
    The statement is missing a comma after MSG, but otherwise ... it should work.
    ARRAYWRITE MSG, ["VALUE: ",DEC TMR[X]]
    DT

  6. #6
    Join Date
    Dec 2008
    Location
    Los Angeles, CA
    Posts
    156


    Did you find this post helpful? Yes | No

    Default

    Sorry, I was 'winging it' by memory from work. The comma was there, and still no go. I'll keep trying things as I'd really like to use this command.

  7. #7
    Join Date
    Dec 2008
    Location
    Los Angeles, CA
    Posts
    156


    Did you find this post helpful? Yes | No

    Unhappy

    I've been looking at this all day, and it just doesn't work:



    Code:
    'PIC18F6722
    OSC 40
    ARRAYSIZE  CON  20
    DJAM      CON     %01110111
    ACK       CON     $06 
    COMMAND   VAR     BYTE[20]
    MESSAGE   VAR     BYTE[20]
    
    LOOP1:
    ARRAYWRITE MESSAGE,[HEX ACK," ",BIN DJAM]
    ARRAYREAD MESSAGE, [COMMAND]
    DEBUG STR COMMAND,10,13                                                     
    ARRAYWRITE MESSAGE,[REP 0\ARRAYSIZE]
    PAUSE 1000
    GOTO LOOP1
    
    OUTPUT:
    61110111
    If I just say "HEX ACK" it produces 61110111 (no space as I specified). If I try to use "HEX2 ACK", it doesn't show the first value OR the space, just the binary number! I need to write some rather complicated structured messages and store them, but I've found that

    1) IN NO CASE will ARRAYWRITE write more than two items... (if there is more, they just don't show). The exact same structure prints fine using DEBUG.

    For example: ARRAYWRITE MESSAGE, ["DJ_TMR",DEC X,":",DEC DJ_TMR[X]] will only show the first two values... DJ_TMR, and DEC X - nothing further.

    2) ARRAYWRITE won't work with indexed variables.

    All efforts done in PBP 2.60A. If anyone can tell me what I'm doing wrong, I would be most grateful!

    L.
    Last edited by circuitpro; - 30th July 2010 at 04: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