?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{BLAME START}

library

?curdirlinks? -

Blame information for rev 6

Line No. Rev Author Line
1 6 kaklik //*****************************************************************************
2 // File Name : ds2450.c
3 // Title : Dallas 1-Wire DS2450 A2D Sensor Library
4 // Revision : 5
5 // Notes :
6 // Target MCU : Atmel AVR series
7 // Editor Tabs : 4
8 //
9 // Revision History:
10 // When Who Rev Description of change
11 // ----------- ----------- ------- -----------------------
12 // 01-Oct-2003 rwatson 5 Fixed result error with MSB
13 // 30-Sep-2003 rwatson 4 CreatedDigitalOut
14 // 30-Sep-2003 rwatson 3 Created SetupAlll, StartAll, ResultAll, StartAndResultAll
15 // 29-Sep-2003 rwatson 2 Created Setup, Start, Result, StartAndResult
16 // 29-Sep-2003 rwatson 1 Created the program structure
17 //*****************************************************************************
18  
19 #ifndef ds2450_h
20 #define ds2450_h
21  
22 //----- Include Files ---------------------------------------------------------
23 #include "global.h"
24  
25 //----- Defines ---------------------------------------------------------------
26 #define ds2450_rev 5
27  
28 // the two voltage ranges
29 #define DS2450_RANGE_2V 0x00 // 0-2.55V
30 #define DS2450_RANGE_5V 0x01 // 0-5.10V
31  
32 // the family code
33 #define DS2450_FAMILY 0x20
34  
35 // the starting addresses
36 // of the pages in RAM
37 #define DS2450_DATA_PAGE 0x00
38 #define DS2450_SETUP_PAGE 0x08
39 #define DS2450_ALARM_PAGE 0x10
40  
41 #define DS2450_VCC_FLAG 0x40
42 #define DS2450_VCC_ADDR 0x1C
43  
44 // maximum allowable resolution
45 #define DS2450_RES_MAX 16
46  
47 // function commands
48 #define DS2450_READ_MEMORY 0xAA
49 #define DS2450_WRITE_MEMORY 0x55
50 #define DS2450_CONVERT 0x3C
51 #define DS2450_CONVERT_ALL4_MASK 0x0F
52 #define DS2450_CLEAR_ALL4_MASK 0x55
53  
54 //----- Typedefs --------------------------------------------------------------
55  
56 // enumerated constant for configuring
57 // and controlling an A2D channel as a digital output
58 typedef enum {DIGOUT_LOW=0x80, DIGOUT_OC=0xC0, DIGOUT_DISABLE=0x00} dallas_a2d_out_T;
59  
60 //----- Functions ---------------------------------------------------------------
61  
62 // ds2450Init()
63 // initializes the dallas 1-wire bus
64 void ds2450Init(void);
65  
66 //----- Single Channel Functions ----------------------------------------------
67 // The following 4 functions are used for controlling a single channel on the
68 // a2d converter. If you are only using 1 channel, then these functions are
69 // faster. If you are using 2 or more channel, it is faster to use the All
70 // Channel Functions. This is because to convert all the channel only requires
71 // one command to the device, and then a read of the all the channel. To read
72 // two channel individually requires two commands to the device, and two reads.
73 // Therefore using the All Channel Functions for even just 2 channels is faster
74 // and more effificient.
75  
76 // ds2450Setup()
77 // Sets up the given device, for the given channel [A-D],
78 // the given resolution [1-16] and the given range 0-2.55 or 0-5.10
79 // Returns either the corresponding error or DALLAS_NO_ERROR
80 u08 ds2450Setup(dallas_rom_id_T* rom_id, u08 channel, u08 resolution, u08 range);
81  
82 // ds2450Start()
83 // Starts the a2d conversion for the given device and the given channel [A-D]
84 // Returns either the corresponding error or DALLAS_NO_ERROR
85 u08 ds2450Start(dallas_rom_id_T* rom_id, u08 channel);
86  
87 // ds2450Result()
88 // Gets the result from the a2d conversion
89 // for the given device and the given channel [A-D]
90 // Returns either the corresponding error or DALLAS_NO_ERROR
91 u08 ds2450Result(dallas_rom_id_T* rom_id, u08 channel, u16* result);
92  
93 // ds2450StartAndResult()
94 // Starts the conversion of the given device and the given channel [A-D]
95 // Stores the result in the variable result
96 // Returns either the corresponding error or DALLAS_NO_ERROR
97 u08 ds2450StartAndResult(dallas_rom_id_T* rom_id, u08 channel, u16 *result);
98  
99 //----- All Channel Functions -------------------------------------------------
100 // The following 4 commands are used to access data from all 4 channels on the
101 // a2d converter. These commands should be used if you are using more than one
102 // channel on the device. See the Single Channel Functions description for
103 // more information
104  
105 // ds2450SetupAll()
106 // Sets up the given device for all channels for the given resultion
107 // and the given range [0-2.55 or 0-5.10]
108 // Returns either the corresponding error or DALLAS_NO_ERROR
109 u08 ds2450SetupAll(dallas_rom_id_T* rom_id, u08 resolution, u08 range);
110  
111 // ds2450StartAll()
112 // Starts the conversion for all 4 channels on the given a2d converter
113 // Returns either the corresponding error or DALLAS_NO_ERROR
114 u08 ds2450StartAll(dallas_rom_id_T* rom_id);
115  
116 // ds2450ResultAll
117 // Gets the results from the given device
118 // and stores the result in the given array
119 // Returns either the corresponding error or DALLAS_NO_ERROR
120 u08 ds2450ResultAll(dallas_rom_id_T* rom_id, u16 result[4]);
121  
122 // ds2450StartAndResultAll()
123 // 1-Step command to start the conversion for the given device,
124 // and store the results in the given array
125 // Returns either the corresponding error or DALLAS_NO_ERROR
126 u08 ds2450StartAndResultAll(dallas_rom_id_T* rom_id, u16 result[4]);
127  
128 // ds2450Print()
129 // Does a formatted print on the given result for the given range
130 void ds2450Print(u16 result, u08 range);
131  
132 //----- Digital Out Functions -------------------------------------------------
133 // ds2450DigitalOut
134 // Use the given channel of the given device as a digital out
135 // Returns either the corresponding error or DALLAS_NO_ERROR
136 u08 ds2450DigitalOut(dallas_rom_id_T* rom_id, u08 channel, dallas_a2d_out_T state);
137  
138 #endif
{BLAME END}
{FOOTER START}

Powered by WebSVN v2.8.3