Страница 2 из 3
Редактирование библиотеки
Добавлено: 17 ноя 2021, 12:08
Naladchik
Ingwar писал(а): 17 ноя 2021, 11:49
...но я понял, что Саша предложил...
Значит Вы слишком критично к себе относитесь и Вы уже не "слабо разбирающийся" а "посредственно".
Редактирование библиотеки
Добавлено: 17 ноя 2021, 12:17
Ingwar
Naladchik писал(а): 17 ноя 2021, 12:08
Значит Вы слишком критично к себе относитесь
Может быть, но "посредственность" как то не благозвучно... и я пожалуй продолжу прикидываться " ̶с̶л̶а̶б̶о̶у̶ слабо разбирающимся"

Редактирование библиотеки
Добавлено: 17 ноя 2021, 12:23
Sancho
[ref]Ingwar[/ref], Тести, я не пробовал вообще.
Отправлено спустя 2 минуты 6 секунд:
Переименуй, _01 лишние, для отличия.
Возможно, будет ругаться, т.к я по привычке описал как uint8_t, заменить на int, или наоборот по причине, описанной
здесь, стр.134.
Редактирование библиотеки
Добавлено: 17 ноя 2021, 12:24
Ingwar
Sancho писал(а): 17 ноя 2021, 12:21
Тести, я не пробовал вообще.
Сегодня обязательно, но сейчас пойду подремлю после ночных "поисков".
Редактирование библиотеки
Добавлено: 17 ноя 2021, 13:36
AlexCrane
[ref]Ingwar[/ref], Ну все теперь будем сами библы писать

Редактирование библиотеки
Добавлено: 17 ноя 2021, 19:38
Ingwar
[ref=#ff8000]Sancho[/ref],
"юниты" не прокатили, поменял на "инты", но все равно ругается )
Код: Выделить всё
d:\PortableFLProg_7-3-8_Win64\ideV7\libraries\ProtoCentral_ads1262-master\src\ads1262_old.cpp:41:6: error: prototype for 'void ads1262::ads1262_Init()' does not match any in class 'ads1262'
void ads1262::ads1262_Init()
^~~~~~~
In file included from d:\PortableFLProg_7-3-8_Win64\ideV7\libraries\ProtoCentral_ads1262-master\src\ads1262_old.cpp:23:0:
d:\PortableFLProg_7-3-8_Win64\ideV7\libraries\ProtoCentral_ads1262-master\src/ads1262.h:83:17: error: candidate is: static void ads1262::ads1262_Init(int, int, int, int)
static void ads1262_Init(int _DRDY, int _CS, int _START, int _PWD);
^~~~~~~~~~~~
d:\PortableFLProg_7-3-8_Win64\ideV7\libraries\ProtoCentral_ads1262-master\src\ads1262_old.cpp: In static member function 'static void ads1262::ads1262_SPI_Command_Data(unsigned char)':
d:\PortableFLProg_7-3-8_Win64\ideV7\libraries\ProtoCentral_ads1262-master\src\ads1262_old.cpp:165:8: warning: unused variable 'data' [-Wunused-variable]
byte data[1];
^~~~
d:\PortableFLProg_7-3-8_Win64\ideV7\libraries\ProtoCentral_ads1262-master\src\ads1262.cpp: In static member function 'static void ads1262::ads1262_SPI_Command_Data(unsigned char)':
d:\PortableFLProg_7-3-8_Win64\ideV7\libraries\ProtoCentral_ads1262-master\src\ads1262.cpp:174:8: warning: unused variable 'data' [-Wunused-variable]
byte data[1];
^~~~
Ну эт ладно, в конце концов это не тот случай, когда ппц нужно.
У меня еще есть другой вопрос. Сразу каюсь - предварительно не искал/не читал. Поправь если я не прав. У нас есть АЦП c закороченным диф. входом и абстрактные значения мы получаем на выходе. Если эти значения вычесть от нуля, а потом результат сложить со значениями на выходе (чтобы получить "опорный" ноль), то дрейф от нуля будет собственным шумом АЦП и схемотехники в целом. И если описать этот десятичный дрейф в двоичном виде, мы получим некое число разрядов, в которые влезают эти шумы. И отняв эти разряды из заявленного разрешения производителем, мы получаем эффективные разряды, которые можем принимать как действительные для измеряемого сигнала? Фух...
Отправлено спустя 1 минуту 13 секунд:
AlexCrane писал(а): 17 ноя 2021, 13:36
Ну все теперь будем сами библы писать
Как говорят - когда прижмет и не так раскорячишся

Редактирование библиотеки
Добавлено: 17 ноя 2021, 22:39
AlexCrane
[ref]Ingwar[/ref], Попробуй такой блок на другой библиотеке. Пока работает только базовый функционал (запуск и чтение ADC1). Если пойдет можно будет доделать.
Редактирование библиотеки
Добавлено: 18 ноя 2021, 00:17
Ingwar
AlexCrane писал(а): 17 ноя 2021, 22:39
Попробуй такой блок на другой библиотеке.
Да, бибка горааааздо интересней по возможностям и я ее уже пробовал, когда купил микрухи. Но сходу она не "взлетела"...
Сейчас, только копнув глубже я понял почему. Она походу под конкретную плату делалась и в ней нет управления сбросом и стартом (ножки ацп).
Сейчас же, прописав пины дополнительно, я запустил сначала пример, а потом и Ваш блочек
Блок по предполагаемым возможностям круче гораздо. Осталось разобраться есть ли в нем возможность включения внутреннего фильтра...
Спасибо огромное!
Скиньте в личку номер телефона.
Отправлено спустя 11 минут 27 секунд:
Для ацп есть еще бибка от производителя. Но скачать ее смог только после регистрации и согласии, что не буду использовать ее для создания оружия и вообще ничего против США не замышляю)
Отправлено спустя 34 секунды:
Но она сука под HAL...
Редактирование библиотеки
Добавлено: 18 ноя 2021, 06:53
AlexCrane
[ref]Ingwar[/ref], Да фильтра есть, пришлось плюсом искурить даташит еще... Вот думаю, может большинство параметров запрятать в параметры...
Редактирование библиотеки
Добавлено: 18 ноя 2021, 08:55
Sancho
Ingwar писал(а): 17 ноя 2021, 19:38
"юниты" не прокатили, поменял на "инты", но все равно ругается )
Можно сам .ino для теста?
Редактирование библиотеки
Добавлено: 18 ноя 2021, 12:45
Ingwar
Sancho писал(а): 18 ноя 2021, 08:55
Можно сам .ino для теста?
Всегда пожалуйста
[spoiler]
Код: Выделить всё
#include <ads1262.h>
#include <SPI.h>
#include <math.h>
long out;
#define PGA 1 // Programmable Gain = 1
#define VREF 2.50 // Internal reference of 2.048V
#define VFSR VREF/PGA
#define FSR (((long int)1<<23)-1)
ads1262 PC_ADS1262; // class
float volt_V=0;
float volt_mV=0;
volatile int i;
volatile char SPI_RX_Buff[10];
volatile long ads1262_rx_Data[10];
volatile static int SPI_RX_Buff_Count= 0;
volatile char *SPI_RX_Buff_Ptr;
volatile int Responsebyte= false;
volatile signed long sads1262Count= 0;
volatile signed long uads1262Count=0;
double resolution;
long _stou1;
void setup()
{
Serial.begin(115200, SERIAL_8N1);
// Serial.begin(9600);
PC_ADS1262.ads1262_Init(25 , 10 , 9 , 2); // initialise ads1262
// Serial.println("ads1262 Initialised successfully....");
}
void loop()
{
//Плата:1
volatile int i,data;
if((digitalRead(ADS1262_DRDY_PIN)) == LOW) // monitor Data ready(DRDY pin)
{
SPI_RX_Buff_Ptr = PC_ADS1262.ads1262_Read_Data(); // read 6 bytes conversion register
Responsebyte = true ;
}
if(Responsebyte == true)
{
for(i = 0; i <5; i++)
{
SPI_RX_Buff[SPI_RX_Buff_Count++] = *(SPI_RX_Buff_Ptr + i);
}
Responsebyte = false;
}
if(SPI_RX_Buff_Count >= 5)
{
ads1262_rx_Data[0]= (unsigned char)SPI_RX_Buff[1]; // read 4 bytes adc count
ads1262_rx_Data[1]= (unsigned char)SPI_RX_Buff[2];
ads1262_rx_Data[2]= (unsigned char)SPI_RX_Buff[3];
ads1262_rx_Data[3]= (unsigned char)SPI_RX_Buff[4];
uads1262Count = (signed long) (((unsigned long)ads1262_rx_Data[0]<<24)|((unsigned long)ads1262_rx_Data[1]<<16)|(ads1262_rx_Data[2]<<8)|ads1262_rx_Data[3]); //get the raw 32-bit adc count out by shifting
sads1262Count = (signed long) (uads1262Count); // get signed value
resolution = (double)((double)VREF/pow(2,31)); //resolution= Vref/(2^n-1) , Vref=2.5, n=no of bits
volt_V = (resolution)*(float)sads1262Count; // voltage = resolution * adc count
volt_mV = volt_V*1000; // voltage in mV
}
out=sads1262Count;
SPI_RX_Buff_Count = 0;
if (1)
{
if(!((out)==(_stou1)))
{
Serial.println(out);
}
}
_stou1 = out;
}
float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
[/spoiler]
Редактирование библиотеки
Добавлено: 18 ноя 2021, 19:59
AlexCrane
[ref]Ingwar[/ref], Пока так, весь вроде функционал библиотеки
ADS126X тест.flp
ADS126X_(Code_-_Professional).ubi
Редактирование библиотеки
Добавлено: 18 ноя 2021, 21:46
Ingwar
AlexCrane писал(а): 18 ноя 2021, 19:59
Пока так, весь вроде функционал библиотеки
Жесть...
Не зря говорят - бойтесь своих желаний
Теперь на изучение уйдет туева хуча времени

Редактирование библиотеки
Добавлено: 18 ноя 2021, 22:28
AlexCrane
[ref]Ingwar[/ref], Я думаю быстро разберетесь. Вроде ничего сложного (ну если даташит перед глазами). Функции калибровок не добавлял. Если очень нужны, то добавлю.
А для чего Вам нужен вход Start на микрухе?
Редактирование библиотеки
Добавлено: 18 ноя 2021, 22:52
Ingwar
AlexCrane писал(а): 18 ноя 2021, 22:28
А для чего Вам нужен вход Start на микрухе?
Да просто уже распаяна макетка)
Редактирование библиотеки
Добавлено: 21 мар 2022, 11:44
Di123
[ref=#ff8000]AlexCrane[/ref],
ахренеть блок
а есть что нибудь для людей ?
как это всё разгрести теперь
старт это типо En тока с тригером ?
стоп это типо тот же тригер тока сброс его ?
а где десять выходов собраных сигналов ?
Редактирование библиотеки
Добавлено: 21 мар 2022, 13:20
AlexCrane
Di123 писал(а): 21 мар 2022, 11:44
как это всё разгрести теперь
Читать даташит
Di123 писал(а): 21 мар 2022, 11:44
старт это типо En тока с тригером ?
стоп это типо тот же тригер тока сброс его ?
Да через RTrig запуск и остановка (привет [ref=#ff8000]Dryundel[/ref])
Di123 писал(а): 21 мар 2022, 11:44
а где десять выходов собраных сигналов ?
На выходе OUT значения с входов Pos pin и Neg pin
Не думал что кому-то понадобится данный блок
Редактирование библиотеки
Добавлено: 21 мар 2022, 13:58
Di123
[ref=#ff8000]AlexCrane[/ref], а цыфровой фильтр sinc и FIR под чем замаскированы ?
надоело бороться с еспишной кривой ацп с обычными термисторами погрешность в 4 градуса
перемаштабировал на АДС1115 показывает идеально как дэски там с отклонением в 0,2 гр
но на 6 датчиков надо две 1115 а они дороже чем 1262 притом что разница между ними колосальная
Редактирование библиотеки
Добавлено: 21 мар 2022, 14:57
AlexCrane
Di123 писал(а): 21 мар 2022, 13:58
AlexCrane, а цыфровой фильтр sinc и FIR под чем замаскированы ?
setFilter
Из даташита (нужно перевести в dec)
000 = sinc1
001 = sinc2
010 = sinc3
011 = sinc4
100 = FIR
Редактирование библиотеки
Добавлено: 21 мар 2022, 15:06
Di123
а как их подать на вход ?
три нуля нельзя прописать они воспринимаются одним нулём допустим