HSER baudrate


Closed Thread
Results 1 to 15 of 15

Thread: HSER baudrate

Hybrid View

  1. #1
    Join Date
    Sep 2009
    Posts
    755

    Default Re: HSER baudrate

    Everything works great. The calculator has really helped me.
    Here's the code if someone needs it.
    Code:
                 IF HSerBaud=0 THEN
                    RCSTA = 0
                    SPBRG = 207 ' 300 Baud @ 4MHz, 0.0% 
                    RCSTA = $90 ' Enable serial port & continuous receive
                    TXSTA = $20 ' Enable transmit, BRGH = 0
                 endif   
                 IF HSerBaud=1 THEN
                    RCSTA = 0
                    SPBRG = 25  ' 2400 Baud @ 4MHz, 0.17%
                    RCSTA = $90 ' Enable serial port & continuous receive
                    TXSTA = $20 ' Enable transmit, BRGH = 0
                 endif
                 IF HSerBaud=$BD THEN
                    RCSTA = 0
                    SPBRG = 25  ' 9600 Baud @ 4MHz, 0.16%
                    RCSTA = $90 ' Enable serial port & continuous receive
                    TXSTA = $24 ' Enable transmit, BRGH = 1
                 endif

  2. #2
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default Re: HSER baudrate


    For safety sake, I would set RCSTA at the end, just after TXSTA.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  3. #3
    Join Date
    Sep 2009
    Posts
    755

    Default Re: HSER baudrate

    Done. But I don't see what difference it makes.
    Can someone explain?

  4. #4
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default Re: HSER baudrate

    It shouldn't make so much difference, but it's a bit more logical to me

    1. You disable the USART
    2. You set the baudrate and mode
    3. You Enable the USART

    Open the datasheet, and see what else you do when you write 0 or $90 to RCSTA, it does more than just enable/disable the USART.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  5. #5
    Join Date
    Sep 2009
    Posts
    755

    Default Re: HSER baudrate

    I looked into datasheet, and saw to change a bunch of thing. I just need to reset and set the seventh bit RCSTA to turn off and on UART
    Is there a way to use the parity bit. Suppose 2400.8, E, 1, or 9600.8, E, 1 As I see hardware support and the ninth bit. The PBP I saw that there define the ninth bit.
    If I add this to the beginning of the code
    DEFINE HSER_EVEN 1
    DEFINE HSER_BITS 9
    How will changes in RCSTA, TXSTA,SPBRG registers affect hserin or serout.

  6. #6
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898

    Default Re: HSER baudrate

    RCSTA, TXSTA, SPBRG will override the DEFINE and configure the PIC USART. It doesn't affect Serout, Serout2 or DEBUG. Those are software solution.

    Again check out the USART section about Parity.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  7. #7
    Join Date
    Sep 2009
    Posts
    755

    Default parity

    I continue where I left off ...
    This is code:
    Code:
             define OSC 4
            OSCCON=%01010110
    
    DEFINE HSER_CLROERR 1 'Hser clear overflow automatically 
    '        SPBRG = 25  ' 9600 Baud @ 4MHz, 0.16%
    '        TXSTA = $24 ' Enable transmit, BRGH = 1
    '        RCSTA = $90 ' Enable serial port & continuous receive
    DEFINE HSER_BAUD 9600        'Set Baud rate to 9600bps
    DEFINE HSER_BITS 9        'Set to 9 bit mode
    DEFINE HSER_EVEN 1        'Set Even Parity
    
    TRISB.7 = 0 'Make Tx output
    TRISB.5 = 1 'Make Rx input
    
    main:
     pause 1000
     HSerOut ["Parity:)"]
    goto main
    Use this or not
    Code:
    DEFINE HSER_BITS 9        'Set to 9 bit mode
    DEFINE HSER_EVEN 1        'Set Even Parity
    Always get a 9600, N, 1. PIC never send parity bit.
    I'm banging head all day, but I can't catch what I missed.

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