Readtemp12 problem.

The bear

Senior Member
Hello everyone,

Using 'Marks' Readtemp12 from 'Code Snippets'. Thank you Marks.
Photo0193.jpg
Code:
	;Marks Readtemp12 30.11.17 From Snippets 

It works fine, but during my conversion, bintoascii for the AXE133 Oled, using the DS18B20 sensor.
The AXE133 is displaying a spurious character, prior to the temperature display,
This character  varies as the temperature fluctuates.
I’ve tried various things, like deleting, moving the variables, with no success .
Any guidance would be appreciated.

Regards, bear..
 

The bear

Senior Member
Readtemp12

Program code,

Code:
	;Marks Readtemp12 30.11.17 From Snippets 
	;	241 Bytes
	;Works fine, doesn't simulate temps (C.1)
	#Picaxe 08M2 ;AXE133 & DS18B20
	#No_data
	#Terminal 4800
	#Com 3
	
	;Sertxd (Cr, Lf,"Marks Readtemp12 30.11.17")
	
	Symbol baud = T2400          ;baud rate to use
	Symbol display = C.0   ;OLED
	;Symbol RTemp12 = C.1
	
Celsius:
	Serout  display,N2400,(254,1) ;Clear screen
	Readtemp12 c.1,w1          'read in result ds18b20

convert:                                           
	  Let b9 = 43          'Display + b9 =(43)   space b8 =(32)
	If w1 > 64655 Then   'info  - 55 degrees          = 64656
	  Let b9 = 45         'Display - (45)
	w1 = - w1    ;info   if - ie w1=1000  display  - 10.00 C
	ENDIF                                
	w1 = w1 * 25 / 4    'info  + ie w1=8500  display 85.00 C
	                                          
	Bintoascii w1,b8,b7,b6,b5,b4 
	If b8 = "0" Then  : b8 = " "  :ENDIF  ' zero blanking b8
	If b8 =  " "  And  b7 =  "0"  Then : b7 = " "  :ENDIF 'zero blanking b7
	Sertxd (Cr, Lf, "Temp",b9,b8,b7,b6,".",b5,b4,"  Degrees C", Cr, Lf)	
	;Pause 1000						'resolution to 0.06
;Goto celsius
;---------------------------------OLED ADDED
	
	Bintoascii w1,b8,b7,b6,b5,b4
	Serout  display,N2400,(254,130)
	Serout  display,N2400,(254,194)
	Serout  display,N2400,(254,16,"TEMP ",b9 ," ");b9 = +/- temps 
	
	If b8 = "0" Then  : b8 = " "  :ENDIF       ' zero blanking b8
	If b8 =  " "  And  b7 =  "0"  Then : b7 = " "  :ENDIF

	;If b8 =  " " Then: endif ; And  b7 =  "0"  Then : b7 = " "  :ENDIF
	
	Serout  display,N2400,(w1, b8 ,b7,b6,".",b5,b4," ", "C")
	Pause 10000
Goto celsius
Failed to get this in the first post, It appeared to be in twice, so I deleted one.

Regards, bear..
 

Buzby

Senior Member
Code:
[color=Blue]Serout  display[/color][color=Black],[/color][color=Blue]N2400[/color][color=Black],[/color][color=Blue]([/color][color=Purple]w1[/color][color=Black], [/color][color=Purple]b8 [/color][color=Black],[/color][color=Purple]b7[/color][color=Black],[/color][color=Purple]b6[/color][color=Black],[/color][color=Red]"."[/color][color=Black],[/color][color=Purple]b5[/color][color=Black],[/color][color=Purple]b4[/color][color=Black],[/color][color=Red]" "[/color][color=Black], [/color][color=Red]"C"[/color][color=Blue])[/color]
What is the w1 supposed to do in this line ?
 

The bear

Senior Member
@Buzby,


What is the w1 supposed to do in this line ? , Serout display,N2400,(w1, b8 ,b7,b6,".",b5,b4," ", "C")
Not sure what it does, I've removed it, looks very promising, thank you.
 

PieM

Senior Member
w1 is the spurious character !

Code:
[COLOR=Green];---------------------------------OLED ADDED
      
      [/COLOR][COLOR=Blue]Bintoascii [/COLOR][COLOR=Purple]w1[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]b8[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]b7[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]b6[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]b5[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]b4
      [/COLOR][COLOR=Green]'Serout  display,N2400,([/COLOR][COLOR=#ff0000]254,130[/COLOR][COLOR=Green])  [/COLOR][COLOR=#ff0000]? first line[/COLOR][COLOR=Green]
      'Serout  display,N2400,([/COLOR][COLOR=#ff0000]254,194)   second line pos 3[/COLOR][COLOR=Green]
      'Serout  display,N2400,([/COLOR][COLOR=#ff0000]254,16[/COLOR][COLOR=Green],"TEMP ",b9 ," ") [/COLOR][COLOR=#ff0000]254, 16 move cursor left  [/COLOR][COLOR=Green]
      
      [/COLOR][COLOR=Blue]If [/COLOR][COLOR=Purple]b8 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Red]"0" [/COLOR][COLOR=Blue]Then  [/COLOR][COLOR=Black]: [/COLOR][COLOR=Purple]b8 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Red]" "  [/COLOR][COLOR=Black]:[/COLOR][COLOR=Blue]ENDIF       [/COLOR][COLOR=Green]' zero blanking b8
      [/COLOR][COLOR=Blue]If [/COLOR][COLOR=Purple]b8 [/COLOR][COLOR=DarkCyan]=  [/COLOR][COLOR=Red]" "  [/COLOR][COLOR=DarkCyan]And  [/COLOR][COLOR=Purple]b7 [/COLOR][COLOR=DarkCyan]=  [/COLOR][COLOR=Red]"0"  [/COLOR][COLOR=Blue]Then [/COLOR][COLOR=Black]: [/COLOR][COLOR=Purple]b7 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Red]" "  [/COLOR][COLOR=Black]:[/COLOR][COLOR=Blue]ENDIF
[/COLOR][COLOR=Green]
      [/COLOR][COLOR=Blue]Serout  display[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]N2400[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]([/COLOR][COLOR=Navy]254[/COLOR][COLOR=Black],[/COLOR][COLOR=Navy]193[/COLOR][COLOR=Black],[/COLOR][COLOR=Red]"TEMP "[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]b9 [/COLOR][COLOR=Black],[/COLOR][COLOR=Red]" "[/COLOR][COLOR=Black], [/COLOR][COLOR=Purple]b8[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]b7[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]b6[/COLOR][COLOR=Black],[/COLOR][COLOR=Red]"."[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]b5[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]b4[/COLOR][COLOR=Black],[/COLOR][COLOR=Navy]$D2 [/COLOR][COLOR=Black],[/COLOR][COLOR=Red]"C"[/COLOR][COLOR=Blue])
      Pause [/COLOR][COLOR=Navy]10000[/COLOR]
 
Top