Страница 2 из 3

Редактирование библиотеки

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

Редактирование библиотеки

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

Редактирование библиотеки

Добавлено: 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], Ну все теперь будем сами библы писать :smile171:

Редактирование библиотеки

Добавлено: 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 Ну все теперь будем сами библы писать
Как говорят - когда прижмет и не так раскорячишся :smile171:

Редактирование библиотеки

Добавлено: 17 ноя 2021, 22:39
AlexCrane
[ref]Ingwar[/ref], Попробуй такой блок на другой библиотеке. Пока работает только базовый функционал (запуск и чтение ADC1). Если пойдет можно будет доделать.

Редактирование библиотеки

Добавлено: 18 ноя 2021, 00:17
Ingwar
AlexCrane писал(а): 17 ноя 2021, 22:39 Попробуй такой блок на другой библиотеке.
Да, бибка горааааздо интересней по возможностям и я ее уже пробовал, когда купил микрухи. Но сходу она не "взлетела"...
Сейчас, только копнув глубже я понял почему. Она походу под конкретную плату делалась и в ней нет управления сбросом и стартом (ножки ацп).
Сейчас же, прописав пины дополнительно, я запустил сначала пример, а потом и Ваш блочек :yahoo:
Блок по предполагаемым возможностям круче гораздо. Осталось разобраться есть ли в нем возможность включения внутреннего фильтра...
Спасибо огромное!
Скиньте в личку номер телефона.

Отправлено спустя 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 Пока так, весь вроде функционал библиотеки
Жесть...
Не зря говорят - бойтесь своих желаний :crazy:
Теперь на изучение уйдет туева хуча времени :smile114:

Редактирование библиотеки

Добавлено: 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
а как их подать на вход ?
три нуля нельзя прописать они воспринимаются одним нулём допустим