18f25k22 hserin


+ Reply to Thread
Results 1 to 18 of 18

Thread: 18f25k22 hserin

  1. #1
    Join Date
    Feb 2022
    Posts
    29

    Default 18f25k22 hserin

    Hello,

    I've tried to use the Hserin with no success, let me explain,

    I used the example from the PBP3 compiler reference manual p:150

    and scanning with hand barcode scanner nothing show or random character show up on the serial terminal.

    the scanner is set at 9600,8,1,n and it's working on other application

    I'm looking for the code to wait until I scan a code then it send to a serial port and come back waiting for the next scan.

    is there someone who can help.

    thanks to everyone



    [/
    Code:
    '-------------------------------------------------------------------------
    ' Name  : Hserin Test  (18F25K22)
    ' Serout Baud rate: 188:4800,84:9600,49:14400,32:19200,15:28800,6:38400  'ok
    ' Serout : p296,297
    ' 9600 Open Inverted None 49236
    ' HSERIN [WAIT("!"), STR MyArray\200, STR MyArray(200)\200, _
    ' STR MyArray(400)\200, STR MyArray(600)\100]
    '
    '-------------------------------------------------------------------------
     Include "modedefs.bas" ' Include serial modes
    ;----[18F25K22 Hardware Configuration]------------------------------------------
    #CONFIG
      CONFIG  FOSC = INTIO67
      CONFIG  PLLCFG = On   
      CONFIG  WDTEN = Off       
      CONFIG  MCLRE = INTMCLR   
      CONFIG  LVP = Off
    #ENDCONFIG
    
    
        ANSELA = 0  ; All Digital
        ANSELB = 0
        ANSELC = 0
    DEFINE OSC 64                     
    TRISA = 111111    '1:IN, 0:OUT             
    TRISB = 111110
    TRISC = 111111                   
    OSCCON = $70
    OSCTUNE = $40                     
    
    
    
    
    ' Set receive register to receiver enabled
    DEFINE HSER_RCSTA 90h
    DEFINE HSER2_RCSTA 90h
    ' Set transmit register to transmitter enabled
    DEFINE HSER_TXSTA 20h
    DEFINE HSER2_TXSTA 20h
    ' Set baud rate
    DEFINE HSER_BAUD 9600 
    DEFINE HSER2_BAUD 9600
    DEFINE HSER_CLROERR 1
    
    
    
    
    AArray VAR BYTE[12]
    BArray VAR BYTE[12]   
    
    
    
    
    ' code to scan sample : 0 59749 96859 1                     
    MAIN:                             
    
    
    HSERIN [wait ("0"), str AArray\12]
    serOut2 PORTB.0,84, [str BArray\12,13,10]
    
    GoTo MAIN
    
    
    
    
    

    Attached Images Attached Images  
    Last edited by jackberg1; - 19th January 2025 at 03:04.

  2. #2
    Join Date
    Jan 2009
    Location
    Miami, Florida USA
    Posts
    692


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    I don't have the manual in front of me now, but I think that you are missing some parameters in the HSERIN command.
    "No one is completely worthless. They can always serve as a bad example."

    Anonymous

  3. #3
    Join Date
    Feb 2022
    Posts
    29


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    the manual is in PDF format.

    Let me know what is missing when you can.

    from the data sheet only 3 setup as to be done for receiving.


    Name:  Untitled-2.jpg
Views: 952
Size:  112.6 KB


    thank you
    Last edited by jackberg1; - 19th January 2025 at 04:25.

  4. #4
    Join Date
    Jan 2009
    Location
    Miami, Florida USA
    Posts
    692


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    "No one is completely worthless. They can always serve as a bad example."

    Anonymous

  5. #5
    Join Date
    Jan 2009
    Location
    Miami, Florida USA
    Posts
    692


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    Also, HSERIN starts saving the variables after the WAIT requirement has been met. In your case, it will only save 11 numbers instead of 12.

    Code:
    ' code to scan sample : 0 59749 96859 1                     
    MAIN:                             
    
    
    HSERIN [wait ("0"), str AArray\11]
    "No one is completely worthless. They can always serve as a bad example."

    Anonymous

  6. #6
    Join Date
    Feb 2022
    Posts
    29


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    Thanks for your time, I'll look at it, also I did used a timeout label (hserin 5,MAIN,[STR AARRAY\12])
    still no result.

    Thanks again.

  7. #7
    Join Date
    Feb 2022
    Posts
    29


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    I rectified it (hserin 5,MAIN,[STR AARRAY\12])

  8. #8
    Join Date
    Feb 2022
    Posts
    29


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    here's the code from today post:

    HSERIN [wait ("0"), str AArray\12]
    serOut2 PORTB.0,84, [str BArray\12,13,10]

  9. #9
    Join Date
    May 2013
    Location
    australia
    Posts
    2,569


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    Works ok for me if BArray has something printable placed in it

    perhaps u wired it up incorrectly
    Warning I'm not a teacher

  10. #10
    Join Date
    Feb 2022
    Posts
    29


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    Quote Originally Posted by richard View Post
    Works ok for me if BArray has something printable placed in it

    perhaps u wired it up incorrectly


    even this

    MAIN:
    hserin 5,MAIN,[STR AARRAY\12]
    serOut2 PORTB.0,84, [str aarray\12,13,10]
    GoTo MAIN

  11. #11


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    ....."0" is decimal 48

  12. #12
    Join Date
    Feb 2022
    Posts
    29


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    Name:  SCAN.jpg
Views: 944
Size:  16.5 KB
    Quote Originally Posted by amgen View Post
    ....."0" is decimal 48

    thanks to everyone involved to help me on this project.
    I tried about every way to setup the HSerin1,2
    still not working.
    I'm realy suprise since these HSerin command are part of PBP3 for at least 15 years
    and today in 2025 cannot find any reliable sample codes.
    even the PBP3 examples does not work at all for my setup.

    I had 1 rs232/ttl scanner bad (intermitent power on the rs232 rail)
    connected another one and the only easy way to make work it's
    with the code below.

    Code:
    MAIN:                             
    
    
    '--------------------------------------------
    serin2 PORTB.0,84,50,MAIN,[STR AARRAY\12]
    serOut2 PORTB.1,84, [str aarray\12,13,10]
    serOut2 PORTB.1,84, ["Done!",13,10]
    '--------------------------------------------
    
    
    GoTo MAIN
    Last edited by jackberg1; - 19th January 2025 at 23:02.

  13. #13
    Join Date
    May 2013
    Location
    australia
    Posts
    2,569


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    works as expected
    only slight change was to move serout to portb.7 to suit my pickit2 debug uart tool and put something printable
    into BArray

    Code:
    '-------------------------------------------------------------------------' Name  : Hserin Test  (18F25K22)
    ' Serout Baud rate: 188:4800,84:9600,49:14400,32:19200,15:28800,6:38400  'ok
    ' Serout : p296,297
    ' 9600 Open Inverted None 49236
    ' HSERIN [WAIT("!"), STR MyArray\200, STR MyArray(200)\200, _
    ' STR MyArray(400)\200, STR MyArray(600)\100]
    '
    '-------------------------------------------------------------------------
     Include "modedefs.bas" ' Include serial modes
    ;----[18F25K22 Hardware Configuration]------------------------------------------
    #CONFIG
      CONFIG  FOSC = INTIO67
      CONFIG  PLLCFG = On   
      CONFIG  WDTEN = Off       
      CONFIG  MCLRE = INTMCLR   
      CONFIG  LVP = Off
    #ENDCONFIG
    
    
    
    
        ANSELA = 0  ; All Digital
        ANSELB = 0
        ANSELC = 0
    DEFINE OSC 64                     
    TRISA = % 11111111    '1:IN, 0:OUT             
    TRISB = % 11111111
    TRISC = % 11111111                   
    OSCCON = $70
    OSCTUNE = $40                     
    
    
    
    
    
    
    
    
    ' Set receive register to receiver enabled
    DEFINE HSER_RCSTA 90h
    DEFINE HSER2_RCSTA 90h
    ' Set transmit register to transmitter enabled
    DEFINE HSER_TXSTA 20h
    DEFINE HSER2_TXSTA 20h
    ' Set baud rate
    DEFINE HSER_BAUD 9600 
    DEFINE HSER2_BAUD 9600
    DEFINE HSER_CLROERR 1
    
    
    
    
    
    
    
    
    AArray VAR BYTE[12]
    BArray VAR BYTE[12]   
    
    
     ARRAYWRITE BARRAY,["GOT IT",0]
    
    
    
    
    ' code to scan sample : 0 59749 96859 1                     
    MAIN:                             
    
    
    
    
    HSERIN [wait ("0"), str AArray\12]
    serOut2 PORTB.7,84, [str BArray,13,10]
    
    
    GoTo MAIN
    what doesn't work are code snippets and failure to provide connection details [ schematic]
    and even a description of what happens versus what you expect to happen


    Name:  jbergs.jpg
Views: 943
Size:  99.5 KB
    Last edited by richard; - 20th January 2025 at 00:56.
    Warning I'm not a teacher

  14. #14
    Join Date
    May 2013
    Location
    australia
    Posts
    2,569


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    more useful would be


    Code:
    '-------------------------------------------------------------------------' Name  : Hserin Test  (18F25K22)
    ' Serout Baud rate: 188:4800,84:9600,49:14400,32:19200,15:28800,6:38400  'ok
    ' Serout : p296,297
    ' 9600 Open Inverted None 49236
    ' HSERIN [WAIT("!"), STR MyArray\200, STR MyArray(200)\200, _
    ' STR MyArray(400)\200, STR MyArray(600)\100]
    '
    '-------------------------------------------------------------------------
     Include "modedefs.bas" ' Include serial modes
    ;----[18F25K22 Hardware Configuration]------------------------------------------
    #CONFIG
      CONFIG  FOSC = INTIO67
      CONFIG  PLLCFG = On   
      CONFIG  WDTEN = Off       
      CONFIG  MCLRE = INTMCLR   
      CONFIG  LVP = Off
    #ENDCONFIG
    
    
    
    
        ANSELA = 0  ; All Digital
        ANSELB = 0
        ANSELC = 0
    DEFINE OSC 64                     
    TRISA = % 11111111    '1:IN, 0:OUT             
    TRISB = % 11111111
    TRISC = % 11111111                   
    OSCCON = $70
    OSCTUNE = $40                     
    
    
    
    
    
    
    
    
    ' Set receive register to receiver enabled
    DEFINE HSER_RCSTA 90h
    DEFINE HSER2_RCSTA 90h
    ' Set transmit register to transmitter enabled
    DEFINE HSER_TXSTA 20h
    DEFINE HSER2_TXSTA 20h
    ' Set baud rate
    DEFINE HSER_BAUD 9600 
    DEFINE HSER2_BAUD 9600
    DEFINE HSER_CLROERR 1
    
    
    
    
    
    
    
    
    AArray VAR BYTE[12]
    BArray VAR BYTE[12]   
    
    
     ARRAYWRITE BARRAY,["GOT IT",0]
    
    
    
    
    ' code to scan sample : 0 59749 96859 1                     
    MAIN:                             
    
    
    
    
    HSERIN [wait ("0"), str AArray\12]
    serOut2 PORTB.7,84, [str BArray,13,10]
    hserout ["got", str AArray\12 ,13,10]
    
    
    
    
    GoTo MAIN
    Name:  jberg.jpg
Views: 941
Size:  85.3 KB
    Warning I'm not a teacher

  15. #15
    Join Date
    Feb 2022
    Posts
    29


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    Hello everyone, and thank to all for helping me

    this case is solved!


    1st

    the GM65 scanner Tx/Rx line are at 3.3v not at standard 5V TTL logic, so I add a BSS138 between the Tx and the Rx (HSerin) of the PIC

    2nd

    I like to thank also BrianS (HSERIN issue with a 18F452 and IF THEN statements or Case statements)


    while reading about his case I took part of the HSerin setup and added to my program, first try work just fine on HSerin/HSerin2.

    Code:
    '-------------------------------------------------------------------------
    ' Name : Hserin Test  (18F25K22)
    '-------------------------------------------------------------------------
     Include "modedefs.bas" ' Include serial modes
    ;----[18F25K22 Hardware Configuration]------------------------------------------
    
    
    #CONFIG
      CONFIG  FOSC = INTIO67
      CONFIG  PLLCFG = ON
      CONFIG  WDTEN = Off       
      CONFIG  MCLRE = INTMCLR   
      CONFIG  LVP = Off
    #ENDCONFIG
    
    '-------------------------
    DEFINE HSER_CLROERR 1
    DEFINE HSER_BAUD 9600
    RCSTA = $90
    TXSTA = $20
    DEFINE HSER2_CLROERR 1
    DEFINE HSER2_BAUD 9600
    RCSTA2 = $90
    TXSTA2 = $20
    '-------------------------
    
    
       ANSELA = 0  ; All Digital
       ANSELB = 0
       ANSELC = 0
    DEFINE OSC 64 
                        
    TRISA = 111101    '1:IN, 0:OUT             
    TRISB = 000001
    TRISC = 111101                   
    OSCCON = $70
    OSCTUNE = $40                     
    
    
    AArray VAR BYTE[12]
    
    
    ' code to scan sample : 0 59749 96859 1                     
    
    MAIN:                             
    
    
    HSERIN 50,MAIN,[STR AARRAY\12]
    'HSERIN2 50,MAIN,[STR AARRAY\12]
    
    ' --------------------------------------------
    serOut2 PORTB.1,84, [str aarray\12,13,10]
    ' --------------------------------------------
    
    
    GoTo MAIN


    Name:  GM65 SPEC.jpg
Views: 940
Size:  163.7 KB


    Name:  BSS138 CIRCUIT FROM SPARKFUN.png
Views: 941
Size:  58.3 KB


    Name:  terminal-2.jpg
Views: 940
Size:  44.0 KB



  16. #16
    Join Date
    Feb 2022
    Posts
    29


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    Many thanks richard.

    Take care.

  17. #17
    Join Date
    May 2013
    Location
    australia
    Posts
    2,569


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    No code error , no compiler deficiency. as suggested in post #9 its wired incorrectly

    who would have known
    Warning I'm not a teacher

  18. #18
    Join Date
    Feb 2022
    Posts
    29


    Did you find this post helpful? Yes | No

    Default Re: 18f25k22 hserin

    Specialy when the GM65 user manual mention TTL logic level, yes the DC supply is 5V, for the USB / UART ports.

    but it's not specify 3.3V Tx/Rx output line.

    Learning everyday like everyone here.

Similar Threads

  1. Hserin
    By Dinoden in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 13th December 2016, 05:16
  2. 18F25K22 Help
    By ERMEGM in forum mel PIC BASIC Pro
    Replies: 17
    Last Post: - 25th November 2014, 11:36
  3. migration from 16F876a to 18F25k22
    By MOUNTAIN747 in forum General
    Replies: 26
    Last Post: - 19th March 2012, 22:33
  4. Config 18F25K22
    By mpardinho in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 26th April 2011, 20:08
  5. hserin
    By jcleaver in forum mel PIC BASIC Pro
    Replies: 28
    Last Post: - 21st February 2007, 19:15

Members who have read this thread : 13

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