2.7V 4-Channel 12-Bit A/D Converters with SPI™ Serial Interface
Embed:
(wiki syntax)
Show/hide line numbers
MCP3204.cpp
00001 /* mbed MCP3204 Library, for driving the 2.7V 4-Channel/8-Channel 12-Bit A/D Converters with SPI™ Serial Interface 00002 * Copyright (c) 2015, Created by Steen Joergensen (stjo2809) 00003 * 00004 * Permission is hereby granted, free of charge, to any person obtaining a copy 00005 * of this software and associated documentation files (the "Software"), to deal 00006 * in the Software without restriction, including without limitation the rights 00007 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00008 * copies of the Software, and to permit persons to whom the Software is 00009 * furnished to do so, subject to the following conditions: 00010 * 00011 * The above copyright notice and this permission notice shall be included in 00012 * all copies or substantial portions of the Software. 00013 * 00014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00017 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00018 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00019 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 00020 * THE SOFTWARE. 00021 */ 00022 00023 #include "mbed.h" 00024 #include "MCP3204.h" 00025 00026 //============================================================================= 00027 // Public functions 00028 //============================================================================= 00029 00030 MCP3204::MCP3204(SPI& spi, PinName nCs) : _spi(spi), _nCs(nCs) 00031 { 00032 00033 } 00034 00035 00036 MCP3204::MCP3204(PinName mosi, PinName miso,PinName sck, PinName nCs) : _mosi(mosi), _miso(miso), _sck(sck), _nCs(nCs) 00037 { 00038 SPI _spi(_mosi,_miso,_sck); 00039 } 00040 00041 00042 int MCP3204::sgl(char channel) 00043 { 00044 return _read(SINGLE, channel); 00045 } 00046 00047 int MCP3204::diff(char channel) 00048 { 00049 return _read(DIFFERENTIAL, channel); 00050 } 00051 00052 //============================================================================= 00053 // Private functions 00054 //============================================================================= 00055 00056 int MCP3204::_make_value_from_responce(int _msb, int _lsb) 00057 { 00058 --- code --- 00059 } 00060 00061 int MCP3204::_read(char sgl_or_diff, char channel) 00062 { 00063 _make_value_from_responce(int responce_msb, int responce_lsb); 00064 00065 _nCs = 0; 00066 _spi.write(sgl_or_diff); 00067 int responce_msb = _spi.write(channel); 00068 int responce_lsb = _spi.write(0xff); // don't care bits 00069 _nCs = 1; 00070 00071 int responce = _make_value_from_responce(responce_msb, responce_lsb); 00072 00073 return responce; 00074 }
Generated on Sat Jul 16 2022 12:35:19 by 1.7.2