DS1631 READ.bas
Quelle: www.C-Control-Support.net
Weitere Infos im C-Control-Forum / C-Control I Info
Download Download
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'II       BASIC++ DEMO ZUM BASIC-COMPUTER UNIT M 1.2/2.0           II
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'--------------------------------------------------------------------
' Beispiel zum BASIC-COMPUTER    mit dem Programmer/Application-Board
'--------------------------------------------------------------------
' ANWENDUNG:                   TEMPERATUR DS1631 AM IIC-BUS ABFRAGEN
'--------------------------------------------------------------------
' Eine kleine DEMO um die TEMPERATUR eines DS1631 am IIC-BUS
' abrufragen.

' Sie benötigen diese Adresse für jeden Teilnehmer am Bus. Ein kleines
' Tool, diese auszulesen, finden Sie bei den Beispielen.
'---------------------------------------------------------------------
' Beispielprogramm:
' Das Programm schleift und zeigt die Temperatur am LCD an. Der Abfragezyklus
' wird von der Wandlungszeit des DS1631 bestimmt und beträgt ca. 200ms
' Der DS1631 wird hier mit 9 Bit Auflösung (0.5 Grad) betrieben. Er befindet
' sich in diesem Beispiel auf Adresse 158, d.h. alle Jumper sind abgezogen. 

' Sie können die Demo benutzen und erweitern ohne die Details im Treiber
' näher zu kennen. 
' Die Demo ist im neg. Temperaturbereich nicht getestet!



'--------------------------
'------ I/O PORTS ---------
'--------------------------
define LIGHT         port[16]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
define TEMP         as word
define TEMPHI       as byte
define TEMPLO       as byte

const DS1631=158 'Adresse

import "...\LIB\DS1631_GENERIC.BAS"

#INIT
LIGHT=off
'------------------ EINSCHALT MELDUNG ------------------------
LCD.INIT
LCD.PRINT "READ DS1631 TEMP"
LCD.OFF
'-------------------------------------------------------------
DS1631RESET(DS1631)
DS1631SET_STATUS(DS1631,1)
'-------------------------------------------------------------
'-----            LOOP READING TEMPERATURE                 ---
'-------------------------------------------------------------
#LOOP
pause 5
DS1631CONVERT(DS1631)
DS1631WAIT_READY(DS1631)
TEMP=DS1631GET_TEMP(DS1631)
LCD.INIT switchonly
LCD.POS 2,1
TEMP=TEMP SHR 7
if (TEMP and 0100h) = 0100h then TEMP=(TEMP or FE00h)
LCD.PRINT "TEMP: " & TEMP/2 & "." & (TEMP and 1)*5 & " C        "
LCD.OFF
goto LOOP

Powered by C-Control I Info