Modification de la lib MesureADC
This commit is contained in:
parent
23739adb7c
commit
fd9af9166c
@ -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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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 */
|
|
@ -5,14 +5,11 @@
|
|||||||
#######################################
|
#######################################
|
||||||
# Datatypes (KEYWORD1)
|
# Datatypes (KEYWORD1)
|
||||||
MesureADC.h KEYWORD1
|
MesureADC.h KEYWORD1
|
||||||
LTC2439 KEYWORD1
|
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Methods and Functions (KEYWORD2)
|
# Methods and Functions (KEYWORD2)
|
||||||
#######################################
|
#######################################
|
||||||
LTC KEYWORD2
|
|
||||||
readValue KEYWORD2
|
|
||||||
startTimer KEYWORD2
|
|
||||||
MesureADC KEYWORD2
|
MesureADC KEYWORD2
|
||||||
ReadTemp KEYWORD2
|
ReadTemp KEYWORD2
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user