Hi skimask!
Sorry, I’m somewhat confused here I don’t know what to believe in (of curse I believe in you!) since I also got a compilation error saying: “ERROR: Macro OWINSTR?W not found in macro file.”
Huuh?
Edit: Hey… it’s the other way around, it says 12-bits not supported! (found my glasses) :-) . Then (as usual) I must be doing something else wrong!
Last edited by PICante; - 18th September 2008 at 18:46.
The latest PBP update should fix that problem.
If not, there's a thread somewhere around here relating a problem similar to that..somewhere...
I don't know which manual you're reading.Edit: Hey… it’s the other way around, it says 14-bits not supported! (found my glasses) :-) . Then (as usual) I must be doing something else wrong!
My manual says 12-bits aren't supported using the REP and STR modifiers. I'd tend to believe that due to the stack/ram constraints of 12 bit devices.
Yes, my manual also says 12-bit. edited almost instantaneously! :-)
I have got the P250a patch installed, can’t seem to find any newer?
I will try to find and run the patch to find out if that’s the culprit.
Thanks ski
Patch in place..... No, that did not cancel the compile error!
Here’s the code:
Thanks!Code:READTEMP: OWOUT PORTA.5,1,[$CC, $44] ' SEND Start Temperature Conversion command OWOUT PORTA.5,1,[$CC, $BE] ' SEND Read Temperature command OWIN PORTA.5,0,[STR dq\9] ' Retrieve all 9 bytes of data RawTemp.Byte0 = dq[0] RawTemp.byte1 = dq[1] IF RawTemp.8 = 1 then ' Check IF temperature is a negative reading SignC = Negative RawTemp.lowbyte = RawTemp.lowbyte ^ 255 ' Invert data ELSE SignC = Positive ENDIF dummy = RawTemp.0 ' Store the half degree indicator bit TempC = ((RawTemp.lowbyte) >> 1) * 100 ' Divide raw data by 2 to give real temperature TempC = TempC + (dummy * 50) ' Add the half degree is present IF SignC = Negative then ' Only proceed IF temperature is negative IF TempC => 1770 then SignF = Negative TempF = (TempC + 5000) * 900 TempF = div32 500 TempF = TempF - 12200 RETURN ELSE SignF = Positive TempF = (TempC + 5000) * 900 TempF = div32 500 TempF = 12200 - TempF RETURN ENDIF ENDIF SignF = Positive TempF = TempC * 18 / 10 + 3200 RETURN
Bookmarks