Skip to content

Use External Library BusIO #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 30 commits into from
Nov 5, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .arduino-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# https://github.com/Arduino-CI/arduino_ci/issues/159
# copied from vendor/bundle/ruby/2.6.0/gems/arduino_ci-0.3.0/misc/default.yml
platforms:
mega2560:
board: arduino:avr:mega:cpu=atmega2560
package: arduino:avr
gcc:
features:
defines:
- __AVR_ATmega2560__
# added this line
- ARDUINO_CI
- __AVR__
warnings:
flags:

unittest:
platforms:
- mega2560
testfiles:
reject:
- "Common.cpp"
libraries:
- "Adafruit BusIO"

compile:
platforms:
- mega2560
libraries:
- "Adafruit BusIO"
15 changes: 15 additions & 0 deletions .github/workflows/format.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: test-clang-format

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: DoozyX/[email protected]
with:
source: './'
extensions: 'c,h,C,H,cpp,hpp,cc,hh,c++,h++,cxx,hxx,ino'
clangFormatVersion: 9
32 changes: 0 additions & 32 deletions .github/workflows/githubci.yml

This file was deleted.

29 changes: 29 additions & 0 deletions .github/workflows/max.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# This is the name of the workflow, visible on GitHub UI
name: Arduino CI Tests

# Run on a Push or a Pull Request
on: [push, pull_request]

jobs:
runTest:
runs-on: ubuntu-latest
steps:
# Clone the repo using the `checkout` action
- uses: actions/checkout@v2

# Get Ruby and run Arduino CI
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6

# Install Arduino IDE and Arduino CI
- run: |
bundle install

# Run the tests
- run: |
bundle exec arduino_ci_remote.rb --skip-compilation

# Finally, verify that everything compiles
- run: |
bundle exec arduino_ci_remote.rb --skip-unittests
17 changes: 17 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/.bundle/
/.yardoc
Gemfile.lock
/_yardoc/
/coverage/
/doc/
/pkg/
/spec/reports/
vendor
*.gem

# rspec failure tracking
.rspec_status

# C++ stuff
*.bin
*.bin.dSYM
2 changes: 2 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
source 'https://rubygems.org'
gem 'arduino_ci'
46 changes: 25 additions & 21 deletions examples/max31865/max31865.ino
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
/***************************************************
/***************************************************
This is a library for the Adafruit PT100/P1000 RTD Sensor w/MAX31865

Designed specifically to work with the Adafruit RTD Sensor
----> https://www.adafruit.com/products/3328

This sensor uses SPI to communicate, 4 pins are required to
This sensor uses SPI to communicate, 4 pins are required to
interface
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!

Written by Limor Fried/Ladyada for Adafruit Industries.
Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, all text above must be included in any redistribution
****************************************************/

Expand All @@ -19,53 +19,57 @@
// Use software SPI: CS, DI, DO, CLK
Adafruit_MAX31865 thermo = Adafruit_MAX31865(10, 11, 12, 13);
// use hardware SPI, just pass in the CS pin
//Adafruit_MAX31865 thermo = Adafruit_MAX31865(10);
// Adafruit_MAX31865 thermo = Adafruit_MAX31865(10);

// The value of the Rref resistor. Use 430.0 for PT100 and 4300.0 for PT1000
#define RREF 430.0
#define RREF 430.0
// The 'nominal' 0-degrees-C resistance of the sensor
// 100.0 for PT100, 1000.0 for PT1000
#define RNOMINAL 100.0
#define RNOMINAL 100.0

void setup() {
Serial.begin(115200);
Serial.println("Adafruit MAX31865 PT100 Sensor Test!");

thermo.begin(MAX31865_3WIRE); // set to 2WIRE or 4WIRE as necessary
thermo.begin(MAX31865_3WIRE); // set to 2WIRE or 4WIRE as necessary
}


void loop() {
uint16_t rtd = thermo.readRTD();

Serial.print("RTD value: "); Serial.println(rtd);
Serial.print("RTD value: ");
Serial.println(rtd);
float ratio = rtd;
ratio /= 32768;
Serial.print("Ratio = "); Serial.println(ratio,8);
Serial.print("Resistance = "); Serial.println(RREF*ratio,8);
Serial.print("Temperature = "); Serial.println(thermo.temperature(RNOMINAL, RREF));
Serial.print("Ratio = ");
Serial.println(ratio, 8);
Serial.print("Resistance = ");
Serial.println(RREF * ratio, 8);
Serial.print("Temperature = ");
Serial.println(thermo.temperature(RNOMINAL, RREF));

// Check and print any faults
uint8_t fault = thermo.readFault();
if (fault) {
Serial.print("Fault 0x"); Serial.println(fault, HEX);
Serial.print("Fault 0x");
Serial.println(fault, HEX);
if (fault & MAX31865_FAULT_HIGHTHRESH) {
Serial.println("RTD High Threshold");
Serial.println("RTD High Threshold");
}
if (fault & MAX31865_FAULT_LOWTHRESH) {
Serial.println("RTD Low Threshold");
Serial.println("RTD Low Threshold");
}
if (fault & MAX31865_FAULT_REFINLOW) {
Serial.println("REFIN- > 0.85 x Bias");
Serial.println("REFIN- > 0.85 x Bias");
}
if (fault & MAX31865_FAULT_REFINHIGH) {
Serial.println("REFIN- < 0.85 x Bias - FORCE- open");
Serial.println("REFIN- < 0.85 x Bias - FORCE- open");
}
if (fault & MAX31865_FAULT_RTDINLOW) {
Serial.println("RTDIN- < 0.85 x Bias - FORCE- open");
Serial.println("RTDIN- < 0.85 x Bias - FORCE- open");
}
if (fault & MAX31865_FAULT_OVUV) {
Serial.println("Under/Over voltage");
Serial.println("Under/Over voltage");
}
thermo.clearFault();
}
Expand Down
34 changes: 17 additions & 17 deletions Adafruit_MAX31865.cpp → src/Adafruit_MAX31865.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
*/
/**************************************************************************/
//
Adafruit_MAX31865::Adafruit_MAX31865(int8_t spi_cs, int8_t spi_mosi,
int8_t spi_miso, int8_t spi_clk)
Adafruit_MAX31865_Base::Adafruit_MAX31865_Base(int8_t spi_cs, int8_t spi_mosi,
int8_t spi_miso, int8_t spi_clk)
: spi_dev(spi_cs, spi_clk, spi_miso, spi_mosi, 1000000,
SPI_BITORDER_MSBFIRST, SPI_MODE1) {}

Expand All @@ -44,7 +44,7 @@ Adafruit_MAX31865::Adafruit_MAX31865(int8_t spi_cs, int8_t spi_mosi,
@param spi_cs the SPI CS pin to use along with the default SPI device
*/
/**************************************************************************/
Adafruit_MAX31865::Adafruit_MAX31865(int8_t spi_cs)
Adafruit_MAX31865_Base::Adafruit_MAX31865_Base(int8_t spi_cs)
: spi_dev(spi_cs, 1000000, SPI_BITORDER_MSBFIRST, SPI_MODE1) {}

/**************************************************************************/
Expand All @@ -55,7 +55,7 @@ Adafruit_MAX31865::Adafruit_MAX31865(int8_t spi_cs)
@return True
*/
/**************************************************************************/
bool Adafruit_MAX31865::begin(max31865_numwires_t wires) {
bool Adafruit_MAX31865_Base::begin(max31865_numwires_t wires) {
spi_dev.begin();

setWires(wires);
Expand All @@ -74,7 +74,7 @@ bool Adafruit_MAX31865::begin(max31865_numwires_t wires) {
@return The raw unsigned 8-bit FAULT status register
*/
/**************************************************************************/
uint8_t Adafruit_MAX31865::readFault(void) {
uint8_t Adafruit_MAX31865_Base::readFault(void) {
return readRegister8(MAX31865_FAULTSTAT_REG);
}

Expand All @@ -83,7 +83,7 @@ uint8_t Adafruit_MAX31865::readFault(void) {
@brief Clear all faults in FAULTSTAT
*/
/**************************************************************************/
void Adafruit_MAX31865::clearFault(void) {
void Adafruit_MAX31865_Base::clearFault(void) {
uint8_t t = readRegister8(MAX31865_CONFIG_REG);
t &= ~0x2C;
t |= MAX31865_CONFIG_FAULTSTAT;
Expand All @@ -96,7 +96,7 @@ void Adafruit_MAX31865::clearFault(void) {
@param b If true bias is enabled, else disabled
*/
/**************************************************************************/
void Adafruit_MAX31865::enableBias(bool b) {
void Adafruit_MAX31865_Base::enableBias(bool b) {
uint8_t t = readRegister8(MAX31865_CONFIG_REG);
if (b) {
t |= MAX31865_CONFIG_BIAS; // enable bias
Expand All @@ -112,7 +112,7 @@ void Adafruit_MAX31865::enableBias(bool b) {
@param b If true, auto conversion is enabled
*/
/**************************************************************************/
void Adafruit_MAX31865::autoConvert(bool b) {
void Adafruit_MAX31865_Base::autoConvert(bool b) {
uint8_t t = readRegister8(MAX31865_CONFIG_REG);
if (b) {
t |= MAX31865_CONFIG_MODEAUTO; // enable autoconvert
Expand All @@ -129,7 +129,7 @@ void Adafruit_MAX31865::autoConvert(bool b) {
*/
/**************************************************************************/

void Adafruit_MAX31865::enable50Hz(bool b) {
void Adafruit_MAX31865_Base::enable50Hz(bool b) {
uint8_t t = readRegister8(MAX31865_CONFIG_REG);
if (b) {
t |= MAX31865_CONFIG_FILT50HZ;
Expand All @@ -146,7 +146,7 @@ void Adafruit_MAX31865::enable50Hz(bool b) {
@param wires The number of wires in enum format
*/
/**************************************************************************/
void Adafruit_MAX31865::setWires(max31865_numwires_t wires) {
void Adafruit_MAX31865_Base::setWires(max31865_numwires_t wires) {
uint8_t t = readRegister8(MAX31865_CONFIG_REG);
if (wires == MAX31865_3WIRE) {
t |= MAX31865_CONFIG_3WIRE;
Expand All @@ -170,7 +170,7 @@ void Adafruit_MAX31865::setWires(max31865_numwires_t wires) {
@returns Temperature in C
*/
/**************************************************************************/
float Adafruit_MAX31865::temperature(float RTDnominal, float refResistor) {
float Adafruit_MAX31865_Base::temperature(float RTDnominal, float refResistor) {
float Z1, Z2, Z3, Z4, Rt, temp;

Rt = readRTD();
Expand Down Expand Up @@ -216,7 +216,7 @@ float Adafruit_MAX31865::temperature(float RTDnominal, float refResistor) {
@return The raw unsigned 16-bit value, NOT temperature!
*/
/**************************************************************************/
uint16_t Adafruit_MAX31865::readRTD(void) {
uint16_t Adafruit_MAX31865_Base::readRTD(void) {
clearFault();
enableBias(true);
delay(10);
Expand All @@ -237,14 +237,14 @@ uint16_t Adafruit_MAX31865::readRTD(void) {

/**********************************************/

uint8_t Adafruit_MAX31865::readRegister8(uint8_t addr) {
uint8_t Adafruit_MAX31865_Base::readRegister8(uint8_t addr) {
uint8_t ret = 0;
readRegisterN(addr, &ret, 1);

return ret;
}

uint16_t Adafruit_MAX31865::readRegister16(uint8_t addr) {
uint16_t Adafruit_MAX31865_Base::readRegister16(uint8_t addr) {
uint8_t buffer[2] = {0, 0};
readRegisterN(addr, buffer, 2);

Expand All @@ -255,14 +255,14 @@ uint16_t Adafruit_MAX31865::readRegister16(uint8_t addr) {
return ret;
}

void Adafruit_MAX31865::readRegisterN(uint8_t addr, uint8_t buffer[],
uint8_t n) {
void Adafruit_MAX31865_Base::readRegisterN(uint8_t addr, uint8_t buffer[],
uint8_t n) {
addr &= 0x7F; // make sure top bit is not set

spi_dev.write_then_read(&addr, 1, buffer, n);
}

void Adafruit_MAX31865::writeRegister8(uint8_t addr, uint8_t data) {
void Adafruit_MAX31865_Base::writeRegister8(uint8_t addr, uint8_t data) {
addr |= 0x80; // make sure top bit is set

uint8_t buffer[2] = {addr, data};
Expand Down
Loading