Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
TLV320AIC1110.cpp
- Committer:
- sam_grove
- Date:
- 2013-05-15
- Revision:
- 2:e7c7c0177dd8
- Parent:
- 0:ec233f3b49d8
- Child:
- 3:4592d862ef88
File content as of revision 2:e7c7c0177dd8:
/** * @file TLV320AIC1110.cpp * @brief Device driver - TLV320AIC1110 CODEC * @author sam grove * @version 1.0 * @see http://www.ti.com/product/tlv320aic1110 * * Copyright (c) 2013 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "TLV320AIC1110.h" TLV320AIC1110::TLV320AIC1110(I2C &i2c) { _i2c = &i2c; _i2c->frequency(400000); return; } TLV320AIC1110::~TLV320AIC1110() { return; } void TLV320AIC1110::init(void) const { writeRegister(POWER_CONTROL, 0x9B); writeRegister(MODE_CONTROL, 0x00); writeRegister(AUX, 0x81); return; } void TLV320AIC1110::writeRegister(const TLV320AIC1110_REGISTERS reg, const uint8_t value) const { const uint8_t w_address = 0xE2; uint8_t data[2] = {reg, value}; if (0 != _i2c->write(w_address, (char *)data, 2)) { // catch an error here } return; } uint8_t TLV320AIC1110::readRegister(const uint8_t reg) const { const uint8_t w_address = 0xE2; const uint8_t r_address = 0xE3; char data[1] = {reg}; _i2c->write(w_address, (char *)data, 1, 1); _i2c->read (r_address, data, 1); // _i2c->start(); // _i2c->write(r_address); // data[0] = _i2c->read(0); // _i2c->stop(); return data[0]; }