MEL PICBASIC Forum - Re: Temporary central repository of Darrel Taylor's works (including Mr E's Multicalc

• ### Recent Forum Posts

#### Re: Interfacing a BME280 on a PIC18F2431

Hi Richard,

Thanks for your reply, and I do agree (I thought I'd check first!).

This would have been used in an existing project as an upgrade to replace a DS18B20 - it looks like a good sensor...

#### Re: Interfacing a BME280 on a PIC18F2431

a quick look at the data sheet yields :-
temperature would be ok using longs
humidity might be awkward since it uses unsigned longs that pbp cannot
pressure would be a challenge since its done...

richard Today, 13:54

#### Interfacing a BME280 on a PIC18F2431

Hello Everyone,

I'm currently interfacing a BME280 digital humidity, pressure and temperature sensor (I²C) with a 18F2431:
https://www.bosch-sensortec.com/bst/products/all_products/bme280

I...

#### Re: Help with Using the Catalex MP3 Player

Hi

Program is doing what I want for now.... putting the clear in before the goto has cleared a lot of the issues.

I know it is still not elegant and will have issues still... I am "not" a...

andybarrett1 Yesterday, 09:13

#### Re: Doing something at predefined amount of steps?

for the sign, so long as a & b are the same variable type:

if (a - b) > a then
sign = 1 ' result will be negative
else
sign = 0 ' result will be positive or zero
endif

Art Yesterday, 05:24

#### Re: Doing something at predefined amount of steps?

No, 200-300=65436.
65435 is -101 in two's complement because 65435+101 = 65536 which, when being truncated to 16 bits is 0.

If what you want is the difference between the two numbers while not...

HenrikOlsson - 21st July 2019, 23:01

#### Re: Doing something at predefined amount of steps?

Thanks Henrik, so Say A=200 B=300, C in this case will be 65535-100=65435, right? So if I take 65535 and minus it result, I should receive correct difference between A and B, right?

CuriousOne - 21st July 2019, 18:46

#### Re: Doing something at predefined amount of steps?

towlerg - 21st July 2019, 18:13

#### Re: Doing something at predefined amount of steps?

It will wrap around, 0-1=65535 provided the variable where the result is stored is a WORD.

HenrikOlsson - 21st July 2019, 17:23

#### Re: Doing something at predefined amount of steps?

Oh and by the way, currently I don't have access to machine with PBP, what will happen if C=A-B and B is > A ? all variables are word length. I need to determine difference between A and B, but...

CuriousOne - 21st July 2019, 16:56
• # Re: Temporary central repository of Darrel Taylor's works (including Mr E's Multicalc

Here is Run-Time Config :

Originally Posted by Darrel Taylor
How many times have you been told that CONFIG settings can only be changed by an ICSP programmer while downloading the program's code? And how many times did you believe them? Well, for me, it was every time, until I ran across a BIT that I didn't recognize in the datasheets.

CFGS: Flash Program/Data EEPROM or Configuration Select bit
1 = Access Configuration registers
0 = Access Flash program or data EEPROM memory

Once I saw that, I knew it could be done, it was just a matter of figuring out how. The datasheet was really vague, and it simply said that it was similar to writing to Flash Memory. After a little trial and error, I found that it really is just that easy. So maybe, you want to add a routine to verify that the chip has been programmed with the proper config settings for the program. Or maybe you need to change the settings according to the users input from a menu. Now you can.

This option is available on every 18F that I've looked at so far, so that means it's been around for years. And, no, it's not available on any 16F's that I've seen.<HR>
This program presents the following macros:
Read the contents of a CONFIG register and place the results in a PBP byte variable. The constant for the CONFIG location can be either, one of the pre-defined names from the MPASM .inc file such as _CONFIG1H or _CONFIG3H, or the address of the location like 300001h