Why are not using an "if-then-else" syntax instead of "while loop end
loop"? 8pin PIC it's fine.

On Sun 15 May 2022, 3:02 PM flyway38 <[email protected] wrote:

> Hi Kiste,
>
> Understad your points.
> The main issue am trying to solve while using serial_software (wich makes
> my project runs good enough) is that loop while trying to receive data;
> "while !serial_sw_rx_pin loop".
> Because of this loop have to constantly send dummy data to allow PIC out
> of the loop.
> All other code runs fairly ok (somewhat sluggish, but good enough for the
> needs).
> Checked PIC18F14K2, the problem is I need to stick to 8pin THT PIC right
> now...
> On Sunday, May 15, 2022 at 12:42:01 PM UTC+1 Kiste wrote:
>
>> Hi Filipe,
>>
>> that's an important information: seral_sw_invert defaults to "true". If
>> you had to set it, you have set it to "false". That means, the line you are
>> driving is in "idle low" mode. That mode is not supported by
>> serial_hardware, as it is not supported by the classical USART hardware in
>> PIC controllers.
>>
>> You can not cure that problem by sendig serial_hw_data=!value , as that
>> does not alter the polarity of start- and stopbits.
>>
>> With the delay of 300µs between bytes, you do not cure the framing error.
>> By doing so, you mislead the receiver to recognise data bits as framing
>> bits, so it's one error masking the other error.
>>
>> If you can use another PIC, like PIC18F14K22, the hardware can be set to
>> "idle low" mode for sending and receiving, your 16f18313 can only use the
>> transmission side in that mode. So, to make the receiving side work, you
>> would have to use additional hardware (or peripherals like CLC or
>> comparators) to invert incoming data.
>>
>> Greets,
>> Kiste
>>
>> Am Sonntag, 15. Mai 2022, 13:06:54 MESZ hat flyway38 <[email protected]>
>> Folgendes geschrieben:
>>
>>
>> Hi Kiste,
>>
>> Thak you very much for your input.
>> Will test your code to check and answer you.
>> Anyways, right now I can avoid the Framming Error but still receiving
>> incorrect data while using serial_hardware library.
>>
>> About framming Error, the problem was due to the way I sent data to
>> transmit reg.
>> I was sending two bytes with no delay in between (it works good like this
>> using serial_software lib).
>> But if I use a delay of about 300us between the two bytes sent, Frame
>> Error disppears, but as said above, received data by computer is incorrect.
>> Less than that delay, I get Frame Error.
>>
>> Can answer your question about "const bit serial_sw_invert". *Yes*,
>> needed to set this var using serial_software.
>> Will back here with answer for your second quest.
>> Thank you
>>
>> Cheers,
>> Filipe Santos.
>> On Sunday, May 15, 2022 at 10:48:19 AM UTC+1 Kiste wrote:
>>
>> That data is a bit complex for easy analysis, though I see that you've
>> got a repeating value every five bytes in all of the samples. The baud rate
>> therefore should not be the problem.
>>
>> If you want to rely on my guess, insert after "seral_hw_init()"
>>
>> BAUDCON1_SCKP=1
>> If this helps for transmission, you can't use the USART directly for
>> receiving, as it has no inversion option for RX. In that case, you can use
>> a CLC or a comparator as inverter.
>>
>>
>> If you want to track down the error and learn how to do that, please
>> answer my questions:
>>
>> Have you set "const bit serial_sw_invert" with serial software?
>>
>> What is the result if you just transmit a single character with pauses?
>>
>> forever loop
>>    serial_hw_data="@"
>>    delay_1s(1)
>> end loop
>>
>>
>> Greets,
>> Kiste
>>
>> Am Sonntag, 15. Mai 2022, 11:11:09 MESZ hat flyway38 <[email protected]>
>> Folgendes geschrieben:
>>
>>
>> Hello Kiste,
>>
>> I use Termite to check what flows in my comm line.
>> Here's what I see and makes my project work good enough, using
>> serial_software (small extract):
>>
>> 09 00 ed ef 2a f1 09 00 ed ef 2a f1 09 00 ed ef  ..íï*ñ..íï*ñ..íï
>> 2a f1 09 00 ed ef 2a f1 09 00 ed ef 2a f1 09 00  *ñ..íï*ñ..íï*ñ..
>> ed ef 2a f1 09 00 ed ef 2a f1 09 00 ed ef 2a f1  íï*ñ..íï*ñ..íï*ñ
>> 09 00 ed ef 2a f1 09 00 ed ef 2a f1 09 00 ed ef  ..íï*ñ..íï*ñ..íï
>> 2a f1 09 00 ed ef 2a f1 09 00 ed ef 2a f1 09 00  *ñ..íï*ñ..íï*ñ..
>> ed ef 2a f1 09 00 ed ef 2a f1 09 00 ed ef 2a f1  íï*ñ..íï*ñ..íï*ñ
>> 09 00 ee ef 2a f1 09 00 ed ef 2a f1 09 00 ed ef  ..îï*ñ..íï*ñ..íï
>> 2a f1 09 00 ed ef 2a f1 09 00 ed ef 2a f1 09 00  *ñ..íï*ñ..íï*ñ..
>> ed ef 2a f1 09 00 ed ef 2a f1 09 00 ed ef 2a f1  íï*ñ..íï*ñ..íï*ñ
>> 09 00 ed ef 2a f1 09 00 ed ef 2a f1 09 00 ed ef  ..íï*ñ..íï*ñ..íï
>> 2a f1 09 00 ed ef 2a f1 09 00 ed ef 2a f1 09 00  *ñ..íï*ñ..íï*ñ..
>> ed ef 2a f1 09 00 ee ef 2a f1 09 00 ee ef 2a f1  íï*ñ..îï*ñ..îï*ñ
>> 09 00 ed ef 2a f1 09 00 ed ef 2a f1 09 00 ed ef  ..íï*ñ..íï*ñ..íï
>> 2a f1 09 00 ed ef 2a f1 09 00 ed ef 2a f1 09 00  *ñ..íï*ñ..íï*ñ..
>>
>> Now here's what I see using serial_hardware:
>>
>> 9a f1 81 80 f5 ef 92 f1 81 80 fd ef 9a f1 81 80  šñ €õï’ñ €ýïšñ €
>> f5 ef 9a f1 81 80 f6 ef 9a f1 89 80 fd ef 9a f1  õïšñ €öïšñ‰€ýïšñ
>> 89 80 fe ef 9a f1 89 80 fd ef 9a f1 89 80 f5 ef  ‰€þïšñ‰€ýïšñ‰€õï
>> 92 f1 81 80 f5 ef 9a f1 81 80 f5 ef 92 f1 89 80  ’ñ €õïšñ €õï’ñ‰€
>> f5 ef 9a f1 81 80 f5 ef 9a f1 81 80 fd ef 9a f1  õïšñ €õïšñ €ýïšñ
>> 89 80 fe ef 9a f1 89 80 fd ef 9a f1 89 80 fd ef  ‰€þïšñ‰€ýïšñ‰€ýï
>> 9a f1 89 80 f5 ef 92 f1 81 80 fd ef 9a f1 89 80  šñ‰€õï’ñ €ýïšñ‰€
>> fd ef 9a f1 81 80 fd ef 92 f1 89 80 fe ef 9a f1  ýïšñ €ýï’ñ‰€þïšñ
>> 81 80 fd ef 9a f1 89 80 f5 ef 9a f1 81 80 fd ef   €ýïšñ‰€õïšñ €ýï
>> 9a f1 81 80 fe ef 9a f1 81 80 f5 ef 9a f1 89 80  šñ €þïšñ €õïšñ‰€
>> f5 ef 9a f1 81 80 ed ef 9a f1 81 80 f5 ef 9a f1  õïšñ €íïšñ €õïšñ
>> 89 80 fd ef 9a f1 89 80 f6 ef 92 f1 89 80 fe ef  ‰€ýïšñ‰€öï’ñ‰€þï
>> 92 f1 89 80 fd ef 92 f1 81 80 fe ef 92 f1 89 80  ’ñ‰€ýï’ñ €þï’ñ‰€
>> f5 ef 9a f1 81 80 fe ef 92 f1 89 80 fd ef 9a f1  õïšñ €þï’ñ‰€ýïšñ
>> 81 80 fd ef 8a f1 89 80 fd ef 92 f1 81 80 fd ef   €ýïŠñ‰€ýï’ñ €ýï
>> 92 f1 81 80 fd ef 9a f1 81 80 ed ef 92 f1 89 80  ’ñ €ýïšñ €íï’ñ‰€
>>
>> Finally, here's what I see using serial_hardware, inverted data in
>> serial_hw_write function ("TXREG = !data"):
>>
>> 82 90 e5 8e fe ff 82 90 e5 8e f6 ff 8a 90 ed 8e  ‚ åŽþÿ‚ åŽöÿŠ íŽ
>> fe ff 8a 90 ed 8e fe ff 8a 90 e5 8e fe ff 89 90  þÿŠ íŽþÿŠ åŽþÿ‰
>> e5 8e fe ff 82 90 e5 8e f6 ff 81 90 ed 8e f6 ff  åŽþÿ‚ åŽöÿ íŽöÿ
>> 82 90 ed 8e f6 ff 8a 90 e5 8e f6 ff 82 90 ed 8e  ‚ íŽöÿŠ åŽöÿ‚ íŽ
>> f6 ff 8a 90 ed 8e fe ff 82 90 e5 8e f6 ff 81 90  öÿŠ íŽþÿ‚ åŽöÿ
>> ed 8e f6 ff 82 90 e5 8e f6 ff 82 90 e5 8e fe ff  íŽöÿ‚ åŽöÿ‚ åŽþÿ
>> 8a 90 e5 8e f6 ff 8a 90 e5 8e f6 ff 82 90 ed 8e  Š åŽöÿŠ åŽöÿ‚ íŽ
>> f6 ff 82 90 e5 8e fe ff 81 90 e5 8e fe ff 82 90  öÿ‚ åŽþÿ åŽþÿ‚
>> ed 8e fe ff 82 90 ed 8e fe ff 8a 90 ed 8e fe ff  íŽþÿ‚ íŽþÿŠ íŽþÿ
>> 82 90 e5 8e fe ff 82 90 ed 8e fe ff 82 90 e5 8e  ‚ åŽþÿ‚ íŽþÿ‚ åŽ
>> fe ff 8a 90 e5 8e f6 ff 82 90 ed 8e fe ff 82 90  þÿŠ åŽöÿ‚ íŽþÿ‚
>> e5 8e fe ff 82 90 e5 8e fe ff 82 90 e5 8e f6 ff  åŽþÿ‚ åŽþÿ‚ åŽöÿ
>> 82 90 e5 8e f6 ff 81 90 ed 8e f6 ff 8a 90 ed 8e  ‚ åŽöÿ íŽöÿŠ íŽ
>> f6 ff 82 90 e5 8e f6 ff 8a 90 e5 8e f6 ff 89 90  öÿ‚ åŽöÿŠ åŽöÿ‰
>> ed 8e f6 ff 8a 90 e5 8e fe ff 82 90 ed 8e fe ff  íŽöÿŠ åŽþÿ‚ íŽþÿ
>> 82 90 ed 8e f6 ff 82 90 e5 8e f6 ff 82 90 e5 8e  ‚ íŽöÿ‚ åŽöÿ‚ åŽ
>>
>> It seems serial_hardware is not transmitting same data.
>> Any help would be great.
>> Thank you.
>>
>> Cheers,
>> Filipe Santos
>>
>> On Sunday, May 15, 2022 at 6:57:39 AM UTC+1 Kiste wrote:
>>
>> Hi Filipe,
>>
>> If serial_software works with "const bit serial_sw_invert = true", then
>> serial_hardware should also work. serial_software supports the non-inverted
>> mode, the uart hardware in newer PICs also supports the non-inverted mode,
>> but the serial_hardware library does not yet support that mode natively.
>>
>> Have you tried single chars with time in between?
>>
>> forever loop
>>    serial_hw_data="@"
>>    delay_1s(1)
>> end loop
>>
>> This loop transmits a start bit and a single set data bit every second.
>> From the results you're seeing on the PC, the error might be narrowed down.
>>
>> Greets,
>> Kiste
>>
>>
>> Am Samstag, 14. Mai 2022, 22:58:28 MESZ hat flyway38 <[email protected]>
>> Folgendes geschrieben:
>>
>>
>> Hi to all,
>>
>> Have been using serial_software library with enough success until now.
>> Am coding for use a TTL-232R-5V-AI USB Cable to connect to computer.
>> Using serial_software library with invert bit activated, am getting good
>> results.
>> It all works good enough sending data to computer
>> The problem with this library is while receiving data from computer. As
>> soon as this funcion is activated in PIC code, the library locks in a loop
>> waiting for data.
>> So, started to migrate my code for use with serial_hardware library
>> instead, to avoid this lock.
>> But now I get Frame Error from COMM PORT with not usefull data, all the
>> time. Even if I invert data received. Have also tried different baud rates,
>> etc...
>> Can anyone help about this issue?
>> Thank you very much.
>>
>> Kind regards,
>> Filipe Santos.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "jallib" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/jallib/ac896057-cc8b-40e2-9e84-5cc7d7843640n%40googlegroups.com
>> <https://groups.google.com/d/msgid/jallib/ac896057-cc8b-40e2-9e84-5cc7d7843640n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "jallib" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>>
>> https://groups.google.com/d/msgid/jallib/1c5acd16-71a0-4b4f-b5a8-f156ebc81377n%40googlegroups.com
>> <https://groups.google.com/d/msgid/jallib/1c5acd16-71a0-4b4f-b5a8-f156ebc81377n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "jallib" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>>
>> https://groups.google.com/d/msgid/jallib/2841ae74-69b7-47ee-be97-6bee2a92cdb9n%40googlegroups.com
>> <https://groups.google.com/d/msgid/jallib/2841ae74-69b7-47ee-be97-6bee2a92cdb9n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "jallib" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jallib/7d84e3e6-3865-4d5d-9c1a-f8d125e72413n%40googlegroups.com
> <https://groups.google.com/d/msgid/jallib/7d84e3e6-3865-4d5d-9c1a-f8d125e72413n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/CAM%2Bj4qsimPskKcgjTho5vYYUfx3sTmNRgqiLrBejVJTU8A-WEA%40mail.gmail.com.

Reply via email to