DS1631 READ.bas | |
Quelle: www.C-Control-Support.net Weitere Infos im C-Control-Forum / C-Control I Info | 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 |