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.
DigitalPotentiometer.cpp
00001 #include "DigitalPotentiometer.h" 00002 00003 DigitalPotentiometer::DigitalPotentiometer(PinName csPin) : _spi(p5, p6, p7), _cs(csPin) 00004 { 00005 _cs = 0; 00006 00007 //Increase the frequency when external pull ups are used 00008 _spi.format(8,3); 00009 _spi.frequency(1000000); 00010 } 00011 00012 int DigitalPotentiometer::increment() { 00013 _cs = 1; 00014 00015 // send in the address and value via SPI: 00016 char ret1 = _spi.write(0x04); 00017 00018 _cs = 0; 00019 return ret1; 00020 } 00021 00022 int DigitalPotentiometer::decrement() { 00023 _cs = 1; 00024 00025 // send in the address and value via SPI: 00026 char ret1 = _spi.write(0x08); 00027 00028 _cs = 0; 00029 return ret1; 00030 } 00031 00032 int DigitalPotentiometer::readTCON() { 00033 _cs = 1; 00034 00035 // send in the address and value via SPI: 00036 char ret1 = _spi.write(0x4C); 00037 char ret2 = _spi.write(0x00); 00038 00039 _cs = 0; 00040 return ret1; 00041 } 00042 00043 int DigitalPotentiometer::initTCON() { 00044 _cs = 1; 00045 00046 // send in the address and value via SPI: 00047 char ret1 = _spi.write(0x41); 00048 char ret2 = _spi.write(0x0F); 00049 00050 _cs = 0; 00051 return ret1; 00052 } 00053 00054 int DigitalPotentiometer::readStatus() { 00055 _cs = 1; 00056 00057 // send in the address and value via SPI: 00058 char ret1 = _spi.write(0x5C); 00059 char ret2 = _spi.write(0x00); 00060 00061 _cs = 0; 00062 return ret1; 00063 } 00064 00065 int DigitalPotentiometer::setTap(int value) { 00066 _cs = 1; 00067 00068 // send in the address and value via SPI: 00069 char h = 0x03 & (value >> 8); 00070 char l = 0x00FF & value; 00071 00072 //Serial.print("HIGH: "); 00073 //Serial.println(h, BIN); 00074 //Serial.print("LOW: "); 00075 //Serial.println(l, BIN); 00076 00077 char ret1 = _spi.write(h); 00078 char ret2 = _spi.write(l); 00079 00080 _cs = 0; 00081 return (ret1 << 8) | ret2; 00082 }
Generated on Sat Jul 16 2022 08:55:26 by
1.7.2