Me again, but need REAL help now


Results 1 to 34 of 34

Threaded View

  1. #16
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Try this:
    Code:
    Define  LCD_DREG        PORTB
    Define  LCD_DBIT        4
    Define  LCD_RSREG       PORTB
    Define  LCD_RSBIT       1
    Define  LCD_EREG        PORTB
    Define  LCD_EBIT        3
    INCLUDE "modedefs.bas"
    crc var word:tempc var word:signc var word:result var word
    readhumidity var word:sensorcmd var word:readtemp var word:w var word
    x var word:temp var word:rhtempcomp var word:rhlinear var word:byte0 var byte
    byte1 var byte:databyte var byte:databit var bit:i var word:dpin var portd.0
    cpin var portd.1:portb.2=0:output portb.2:Pause 1000
    lcdout $fe,1, "Temperature and",$fe, $c0 ,"Humidity sensor.":pause 2000
    lcdout $fe,1:Goto mainloop        ' Skip subroutines, start main program
    mainloop: lcdout $fe,1,"Temp ", #tempc,$fe,$c0,"Humidity ",#RHTempComp
    gosub ReadSHT71:pause 100:goto mainloop
    ReadSHT71: Sensorcmd = ReadTemp : gosub readsensor
            if result => 4000 then
            tempC = result - 4000 : SignC = 160
            else
            tempC = 4000 - result : SignC = "-"
        endif
    gosub Initialize : Sensorcmd = ReadHumidity : gosub readsensor
     w = result * 405 : w = div32 100 : x = result * result : x = div32 1000
     x = x * 28 : x = div32 100 : RHLinear = w - x - 400
     w = ( (8 * result ) + 1000) / 10
        if SignC = 160 then
           if tempC > 2500 then
              x = (tempC - 2500) * w : x = div32 100
               RHTempComp = ( RHLinear + x ) / 100
                else
                x = (2500 - temp) * w : x = div32 100
               RHTempComp = ( RHLinear - x ) / 100
            endif
            else
            x = (2500 + tempC) * w : x = div32 10000
               RHTempComp = RHLinear - x
        endif
        sleep 1 : return
    Initialize: dpin=1:cpin=0:for i=1 to 10:cpin=1:pause 1:cpin=0:pause 1:next i
                 gosub TransferStart : return
    ReadSensor: gosub TransferStart : gosub WaitSensor
        shiftout dpin,cpin,0,[Sensorcmd\8]
        input dpin : cpin = 0
        while dpin = 1 : wend
        cpin = 1 : pause 1 : cpin = 0
        while dpin = 0 : wend
        while dpin = 1 : wend
        cpin = 0 : shiftin dpin,cpin,0,[result.byte1\8] : dpin = 0 : cpin = 1
        pause 1 : cpin = 0 : shiftin dpin,cpin,0,[result.byte0\8] : dpin = 0
        cpin = 1 : pause 1 : cpin = 0 : shiftin dpin,cpin,0,[crc\8] : dpin = 1
        cpin = 1 : pause 1 : cpin = 0 : input dpin : input cpin : return
    TransferStart: cpin = 1 : pause 1 : dpin = 0 : pause 1 : cpin = 0
    pause 1 : cpin = 1 : pause 1 : dpin = 1 : pause 1 : cpin = 0 : pause 1
    return
    WaitSensor: result = 4096
    Loop: result = result - 1 : if PORTD.0 & result.bit11 then Loop
        return
    END
    Had a couple of subtle math errors, parenthesis type things..
    Looks like the mode might've been wrong in a couple of places.
    The END wasn't at the bottom...not that it makes much of a difference.
    And it's been COLON-IZED!
    Last edited by skimask; - 19th June 2008 at 06:02.

Similar Threads

  1. real time clock
    By maria in forum Code Examples
    Replies: 44
    Last Post: - 1st March 2022, 12:13
  2. real time clock - PCF8583
    By maria in forum mel PIC BASIC Pro
    Replies: 14
    Last Post: - 15th April 2010, 15:41
  3. Real time clock ICs
    By Eng4444 in forum mel PIC BASIC Pro
    Replies: 66
    Last Post: - 20th October 2008, 16:05
  4. Real time clock... what a headache!
    By Eng4444 in forum mel PIC BASIC
    Replies: 2
    Last Post: - 8th June 2006, 21:56
  5. Timer in real time
    By martarse in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 29th July 2005, 14:24

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts