Hi Vasile,

The program that did not work at 4 MHz had no interrupts or other things 
running so the limitation was really the fact that the microcontroller was 
running at 4 MHz.

As far as I know this would be the only library that needs a warning not to be 
used at 4 MHz 🙂.

Kind regards,

Rob

________________________________
Van: [email protected] <[email protected]> namens vsurducan 
<[email protected]>
Verzonden: zondag 7 augustus 2022 06:14
Aan: [email protected] <[email protected]>
Onderwerp: Re: [jallib] DS18B20 was IF/END IF usage limit??

Hi Rob,
When using DS18B20 with an interrupted USB serial driver you also have to turn 
off the USB interrupts during communication with the sensor. This is mandatory 
if you have for example 8 sensors which are repeatedly sampled and readed.
You know well that you can not turn off GIE because the USB communication will 
then be lost. :)

BTW, I have an automation for two solar water heaters that I made 10 or 12 
years ago which use DS18B20 and an 8MHz PIC16F886. Display is on multiplexed 8 
digit. I needed a long time solving an issue with the code length, one extra 
instruction in the source and the stuff was inoperable, no matter which was 
that instruction. :)  The extra time of the loop ( one more instruction) was 
killing the communication with the sensor.

Perhaps multiple warnings would be necessary :) :P


On Sat, Aug 6, 2022 at 9:02 PM Rob CJ 
<[email protected]<mailto:[email protected]>> wrote:
Hi Filip,

Are you saying that the code is executing slow?

If you can share your program or at least the part that is problematic (so it 
can be reproduced) that could help.

BTW (for Vasile 🙂). I recently worked on a problem of Hans using the DS18B20. 
It did work on one PIC but not on a smaller one. Finally the root cause was the 
PIC running at 4 MHz which was too slow to create the correct one-wire timing 
for the DS18B20. Switching to 8 MHz solved the problem. This was the first time 
that I encountered that a library did not work because of a clock speed begin 
to low. Maybe we should add a warning to that library.

Kind regards,

Rob

________________________________
Van: [email protected]<mailto:[email protected]> 
<[email protected]<mailto:[email protected]>> namens flyway38 
<[email protected]<mailto:[email protected]>>
Verzonden: zaterdag 6 augustus 2022 18:39
Aan: jallib <[email protected]<mailto:[email protected]>>
Onderwerp: Re: [jallib] IF/END IF usage limit??

Hi Vasile,

Thank you for the quick reply.
Is have that feeling about something not right at some point of the code.
In fact tried to exchange some "if/end if" for "case of" but no luck.
Problem persists, but it seems only related to "if/end if" usage..

My code reads the ADC (PIC18F2550), for 100 times in a "for/end loop".
Then find the median of values read and send that median value to RS232.
Also has a button to do some extra actions.
All this code worked great even in a smaller PIC (16F18313).

Now have changed PIC for the 18F2550 and wanted to add some extra code to 
manage PWM and ADC reading times to find the median value.
Also added an oled display to show locally that value and the PWM/ ADC nr. of 
readings parameters. That's when this issue raised up.
Simptoms are the code running sluggish, not hangging...
Any ideas?
Thank you very much.

Cheers,
Filipe Santos


On Saturday, August 6, 2022 at 5:13:36 PM UTC+1 vasile wrote:
This issue appears usually when you do not manage in a correct way the timing 
required by a specific hardware and the costs of your code length is higher 
than required for the device to run properly. Common workaround is to use 
interrupts or other sequential techniques.

Example: DS18B20 is a temperature sensor which requires 750ms or so for a 12bit 
conversion. If you have complex software involving USB interrupts, real time 
clock generation, 7segment LED multiplexed display, etc , and those are not 
shared correctly with your resources ( aka you try everything to be solved in 
pure software) at one moment your code will freeze at a specific code length. 
Removing some lines, no matter that are if/end if or something else will 
apparently make your code functional, but the issue is not where you suppose it 
is...

Instead of if/end if you may use "case of". However it will not do something 
special or different compared with if/end if, except a more understandable 
structure for your source.
best wishes,


On Sat, Aug 6, 2022 at 7:00 PM flyway38 <[email protected]> wrote:
Hi all,

Is there any limit in using IF/ END IF conditions?
My code was running good untill added one more IF/END IF.
At first didn't realize about a limit in using these conditions code, but then 
figured out that any other IF/END IF removal would let my code run ok again...
Does anyone knows anything about this issue?
Thank you very much.

Cheers,
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/3f8189dd-fd0a-4df9-8948-518503485e61n%40googlegroups.com<https://groups.google.com/d/msgid/jallib/3f8189dd-fd0a-4df9-8948-518503485e61n%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]<mailto:[email protected]>.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/d77c7605-af0d-43ff-b2fb-4fe3a987e507n%40googlegroups.com<https://groups.google.com/d/msgid/jallib/d77c7605-af0d-43ff-b2fb-4fe3a987e507n%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]<mailto:[email protected]>.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/GVXP195MB1637E3239BEDEC270DDF22E7E6619%40GVXP195MB1637.EURP195.PROD.OUTLOOK.COM<https://groups.google.com/d/msgid/jallib/GVXP195MB1637E3239BEDEC270DDF22E7E6619%40GVXP195MB1637.EURP195.PROD.OUTLOOK.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]<mailto:[email protected]>.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/CAM%2Bj4qsAGVNa7oODgMNhMRNMHDsf3xT9zoPVMP1Y9gPS09JWXQ%40mail.gmail.com<https://groups.google.com/d/msgid/jallib/CAM%2Bj4qsAGVNa7oODgMNhMRNMHDsf3xT9zoPVMP1Y9gPS09JWXQ%40mail.gmail.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/GVXP195MB1637B71DCF03CBDFA6D1F8CBE6609%40GVXP195MB1637.EURP195.PROD.OUTLOOK.COM.

Reply via email to