Modification de la lib MesureADC

This commit is contained in:
Tim THUREL 2020-05-13 16:17:57 +02:00
parent 23739adb7c
commit fd9af9166c
3 changed files with 1 additions and 202 deletions

View File

@ -1,154 +0,0 @@
//
// LTC2439.cpp
// libLTC
//
// Created by Tim THUREL on 04/03/2020.
// Copyright © 2020 Tim THUREL. All rights reserved.
//
#include "LTC2439.h"
#ifdef DEBUG
#endif
LTC::LTC(int CSpin){
SPI.begin(); // démarage et configuration du SPI
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);
SPI.setClockDivider(SPI_CLOCK_DIV16);
pinMode(CSpin, OUTPUT); // mise en sortie de la pin de CS
pinMode(CSpin, HIGH);
pinConv = 12; // pin de SDO en dur
selectPin = CSpin;
SPI.end();
}
LTC::LTC(int CSpin, int SDOpin){
SPI.begin(); // démarage et configuration du SPI
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);
SPI.setClockDivider(SPI_CLOCK_DIV16);
pinMode(CSpin, OUTPUT); // mise en sortie de la pin de CS
pinMode(CSpin, HIGH);
pinConv = SDOpin; // pin de SDO
selectPin = CSpin;
SPI.end();
}
LTC::LTC(int CSpin, int SDOpin, int F0pin){
SPI.begin(); // démarage et configuration du SPI
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);
SPI.setClockDivider(SPI_CLOCK_DIV16);
pinMode(CSpin, OUTPUT); // mise en sortie de la pin de CS
pinMode(CSpin, HIGH);
pinMode(F0pin, OUTPUT);
pinMode(F0pin, LOW);
pinConv = SDOpin; // pin de SDO
selectPin = CSpin;
pinF0 = F0pin; // pin de Clock
SPI.end();
}
long LTC::readValue(int channel){
//envoie de la commande
digitalWrite(selectPin, LOW); // on selectionne le LTC
pinMode(pinConv, INPUT);
while(digitalRead(pinConv) == 1){} // On attend qu'il réponde
SPI.begin();
SPI.beginTransaction(SPISettings(500000, MSBFIRST,SPI_MODE0)); // Parametrage du SPI
SPI.transfer(0b10110000 | tableChanel[channel]); // envoie d'une conversion
digitalWrite(selectPin, HIGH); // on déselectionne le LTC
SPI.end();
#ifndef ARDUINO
delay(5);
#endif
// recuperation des data
digitalWrite(selectPin, LOW); // On selectionne le LTC
pinMode(pinConv, INPUT);
while(digitalRead(pinConv) == 1){} // On attend qu'il réponde
SPI.begin();
SPI.beginTransaction(SPISettings(500000, MSBFIRST,SPI_MODE0)); // Parametrage du SPI
int8_t bitsleft = 19;
long result = 0;
while(bitsleft > 0) { // On récupère les data
result <<= 8;
result |= SPI.transfer(0);
bitsleft -= 8;
}
SPI.end();
digitalWrite(selectPin,HIGH);
result >>= -bitsleft; // On traite les data
int pos = (result & 0b10000000000000000)>> 16;
unsigned long mask = 0b1111111111111111;
result &= mask;
if(!pos && result != 0){ // test des data
result = result | (~mask);
}
return result; // on envoie les data
}
#ifdef ARDUINO // Projet avec la pin FO non fini car remplacé par un NE555
//void LTC::startTimer(int frequency)
//{
// cli();//stop interrupts
//
// TCCR2A = 0;// set entire TCCR2A register to 0
// TCCR2B = 0;// same for TCCR2B
// TCNT2 = 0;//initialize counter value to 0
//
// OCR2A = (1/frequency)*5*10^5;
// // turn on CTC mode
// TCCR2A |= (1 << WGM21);
// // Set CS21 bit for 8 prescaler
// TCCR2B |= (1 << CS21);
// // enable timer compare interrupt
// TIMSK2 |= (1 << OCIE2A);
//
// sei();//allow interrupts
//}
//
//ISR(TIMER2_COMPA_vect){
// toggle = !toggle;
// digitalWrite(pinF0,toggle);
//
//}
#endif

View File

@ -1,44 +0,0 @@
//
// LTC2439.hpp
// libLTC
//
// Created by Tim THUREL on 04/03/2020.
// Copyright © 2020 Tim THUREL. All rights reserved.
//
#ifndef LTC2439_hpp
#define LTC2439_hpp
#include <stdint.h>
#include "SPI.h"
#include <Arduino.h>
#define DEBUG
//#define ARDUINO
#ifdef ARDUINO
static bool toggle = 0;
static int pinF0;
#endif
class LTC
{
public:
LTC(int CSpin);
LTC(int CSpin, int SDOpin);
LTC(int CSpin, int SDOpin, int F0pin);
long readValue(int channel); // renvoie la valeur du channel en cours
#ifdef ARDUINO
void startTimer(int frequency);
#endif
private:
int selectPin,pinConv;
int tableChanel[16]{0,8,1,9,2,10,3,11,4,12,5,13,6,14,7,15}; // tableau des Pins
};
#endif /* LTC2439_hpp */

View File

@ -5,14 +5,11 @@
#######################################
# Datatypes (KEYWORD1)
MesureADC.h KEYWORD1
LTC2439 KEYWORD1
#######################################
# Methods and Functions (KEYWORD2)
#######################################
LTC KEYWORD2
readValue KEYWORD2
startTimer KEYWORD2
MesureADC KEYWORD2
ReadTemp KEYWORD2