Interesting :)
The last lines of the asm are:
l__l411
sleep
goto l__l411
end
And if you put a forever-loop it becomes:
; 164 forever loop end loop
l__l374
goto l__l374
end
and then the line is printed properly. Should we concider this a bug?
I'm digging into junkbox to find me a 14mhz crystal. 19200 @ 20 MHz works fine.
Joep
2009/9/2 vasile surducan <[email protected]>:
> Hi Rob,
>
> So far I found at least two problems with the pair serial_hw_int_cts and
> usart_common.
>
> With pragma target clock 14_745_600 it does not compute correct the
> spbrg/brgh pair for 19200bps, but it's correct for 115200.
> I guess there are other wrong computed values because this crystal value
> gives zero error.
>
> Using a dummy cts bit is sending only a part from the string, instead of
> "Hello serial" is sending "Hell_" (the road to hell...) :)
>
> Just curious if someone find in previous projects those errors. Can be
> suspected the print_string procedure, particullary counting the number of
> the elements inside the string?
>
> procedure print_string(volatile byte out device, byte in str[]) is
> var word len = count(str)
> var byte i
>
> for len using i loop
> device = str[i]
> end loop
>
> end procedure
>
>
> -- Title: Test program for serial_hw_int_cts.jal on PIC16F876, 14.745.600Mhz
>
> include 16f876
>
> pragma target clock 14_745_600 -- xtal frequency
>
> pragma target OSC hs
>
> pragma target LVP disabled
>
> pragma target WDT disabled
>
> include delay
>
> -- set all IO as digital
>
> enable_digital_io()
>
> var volatile bit _485_sense is pin_C5
> pin_c5_direction = output
>
> var volatile bit DIG1_R is pin_C1
> pin_C1_direction = output
> var volatile bit DIG2_R is pin_C2
> pin_C2_direction = output
> var volatile bit DIG3_R is pin_C3
> pin_C3_direction = output
> var volatile bit DIG4_R is pin_C4
> pin_C4_direction = output
> var volatile bit DP_R is pin_B7
> pin_B7_direction = output
>
> var volatile bit DIG1_V is pin_A1
> pin_A1_direction = output
> var volatile bit DIG2_V is pin_A2
> pin_A2_direction = output
> var volatile bit DIG3_V is pin_A4
> pin_A4_direction = output
> var volatile bit DIG4_V is pin_A5
> pin_A5_direction = output
> var volatile bit DP_V is pin_C0
> pin_C0_direction = output
>
> portB_direction = output
> portB = 0
>
> const serial_hw_baudrate = 115_200
>
> var bit dummyCTS_bit
>
> var bit serial_ctsinv is dummyCTS_bit -- incoming data flow
> control
>
> ; var bit serial_overflow_discard = true -- With transmit buffer overflow
> var bit serial_overflow_discard = false
>
> include serial_hw_int_cts
>
> serial_hw_init()
>
> include print -- output library
>
> const byte str1[] = "Hello serial" -- define a string
>
> _485_sense = high ; TX
>
> print_string(serial_hw_data, str1) -- output string to serial
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jallib" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/jallib?hl=en
-~----------~----~----~----~------~----~------~--~---