String & WRITE


Closed Thread
Results 1 to 17 of 17

Thread: String & WRITE

Hybrid View

  1. #1
    Join Date
    Sep 2003
    Location
    Vermont
    Posts
    373


    Did you find this post helpful? Yes | No

    Default

    To pack single hex digits into a hex byte, just shift the first digit left four times, then add it to the second digit.

    Ron

  2. #2
    Join Date
    Oct 2004
    Location
    Hangover, Germany
    Posts
    289


    Did you find this post helpful? Yes | No

    Default

    OK, I just try to make the situation clear...

    You receive 8 ASCII-Characters "3", "4", "5", "6", ....
    Then you want to pack 2 digits in 1 Byte and write them to the eeprom.

    Yust try:
    Chars Var byte[8] ;here are the 8 digits
    For I=0 to 3 ;generate 4 bytes
    ;cut off unused bits and pack 2 of them
    Dummy=(Chars[I<<1]<<4)|(Chars[(I<<1)+1] & $F)
    Write I,Dummy
    next I

    (Very quick and quite dirty!)
    PBP 2.50C, MCS+ 3.0.0.5, MPLAB 8, MPASM 5.14, ASIX Presto, PoScope, mE mikroBasic V7.2, PICKIT2

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


    Did you find this post helpful? Yes | No

    Default

    Hi BigWumpus,

    I know you did it real quick, but I think something's missing.

    Dummy=((Chars[I<<1]-"0")<<4)|((Chars[(I<<1)+1]-"0") & $F)

    Darrel

  4. #4
    Join Date
    Sep 2005
    Location
    Switzerland
    Posts
    46


    Did you find this post helpful? Yes | No

    Default

    Thanks for answering, I believe you got me the solution.
    I'll try and in case I'm not getting the correct result I'll
    come back to you.
    Regards
    Lotondo

  5. #5
    Join Date
    Oct 2004
    Location
    Hangover, Germany
    Posts
    289


    Did you find this post helpful? Yes | No

    Default

    Hi Darrel,

    I dont subtract the $30 because
    -while shifting it 4 bits to the left, they drop out of the PIC ;-)
    -while & $F they where masked out ;-)

    try it smart !
    PBP 2.50C, MCS+ 3.0.0.5, MPLAB 8, MPASM 5.14, ASIX Presto, PoScope, mE mikroBasic V7.2, PICKIT2

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


    Did you find this post helpful? Yes | No

    Default

    BigWumpus,

    Oh yeah. Your right!

    That'll change the way I convert ascii numbers in the future. Thanks.
    <br>
    DT

  7. #7
    Join Date
    Dec 2017
    Posts
    4


    Did you find this post helpful? Yes | No

    Default Re: String & WRITE

    Hello everybody,

    Although this topic might be quite old, I would like to "try my luck" to sort out a problem that bothers me for some time.

    From the very begining want to state that I am rather a noobie in relation with PIC's and peculiar with its EEPROM operation and actualy this is my first interaction with this forum.

    On short, I use DEBUGIN command to capture a 16 characters alphanumeric strings sent from a PC, something like following example:

    85D4E88A3B52AA40 (or more corect said "8","5","D","4","E","8","8","A","3","B","5","2","A ","A","4","0").

    I do need to WRITE these characters into onchip (PIC16F88) EEPROM, location 0, as pairs consisting of 2 characters in 1 Byte.

    At the end of operation the first location of EEPROM memory must looks like this: 85 D4 E8 8A 3B 52 AA 40.
    Unfortunately I have ended up with this result: 85 44 58 81 32 52 11 40.

    Concernig the pairs of data within the string please note that there are several kind of possible combinations:

    - 2 digits (i.e. 85, 40);
    - 2 characters (i.e. AA);
    - 1 digit and one character, in this order (i.e. 8A, 3B)
    - 1 character and one digit, in this order (i.e. D4, E8)

    Mention that I have used and adapted BigWumpus' above proposed algorithm.
    It works perfectly as long the string contains only digits (0-9).
    However, it fails whenever HEX like characters (A,B,C,D,E F) come into picture.

    Any help to sort out this problem will be highly appreciated.

    Many hanks in advance and wishing you all a Happy and Prosperous New Year !

    Best regards,
    Andrew

  8. #8
    Join Date
    Dec 2017
    Posts
    4


    Did you find this post helpful? Yes | No

    Default Re: String & WRITE

    Although the topic is quite old I am interested to solve a similar problem for which will really appreciate your support / expertise.

    On short, I am receiving serially 16 ASCII-Characters, say "3", "B", "5", "A", "7", "F","1", "D", "2", "2", "4", "F","E", "E", "A", "6".

    Then I need to pack 2 digits in 1 Byte and write them to the EEPROM. The final result should be: 2B 5A 7F 1D 22 4F EE A6.
    Any clue or tip with regard to algorithm or conversion formula will be highly appreciated. Have a happy and prosperous New Year !

Similar Threads

  1. WRITE: One more PBP 2.60 Surprise ...
    By Acetronics2 in forum mel PIC BASIC Pro
    Replies: 22
    Last Post: - 26th August 2009, 09:10
  2. Need the code to write to a memory
    By Hamlet in forum General
    Replies: 0
    Last Post: - 20th August 2007, 00:22
  3. Microcontroller with 2 way paging application problem
    By oneohthree in forum mel PIC BASIC Pro
    Replies: 30
    Last Post: - 20th April 2007, 17:27
  4. Visual Basic 6 & Access 2000
    By Demon in forum Off Topic
    Replies: 33
    Last Post: - 7th September 2006, 04:39
  5. Storing Strings using the Write command
    By BobP in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 1st November 2005, 11:31

Members who have read this thread : 1

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