Size: a a a

2020 April 27

DA

Dmitry Aloyan in Embedded Group
Спасибо 🙂 Ща попробую. А с формулой перевода значения ADC в напряжение подскажете? 🙂 Вроде задача тупая, но постоянно получаю нулевое значение
источник

VO

Vyacheslav Olkhovchenkov in Embedded Group
eupn 🦀
Это ещё зависит от endianness системы
нет же.
источник

DA

Dmitry Aloyan in Embedded Group
#define R1 470000 // resistance of R1 (470K)
#define R2 22000 // resistance of R2 (22K)
#define R_DELTA R2/(R1+R2)
float val = (adcVal / 1024) / R_DELTA;

Используется внутреннее опорное на 1В
источник

T

Thorn in Embedded Group
eupn 🦀
Это ещё зависит от endianness системы
нет, при любой endianness hByte будет старшим
источник

e🦀

eupn 🦀 in Embedded Group
Thorn
нет, при любой endianness hByte будет старшим
Это ежу понятно. А вот значение i16 будет иначе интерпретировано в зависимости от системы
источник

l

lbh in Embedded Group
Dmitry Aloyan
Как конвертнуть 2 uint8_t в int16?
uint16_t a = (8<<hByte) | lByte - постоянно возвращает только lByte
uint16_t a = ((uint16_t)hByte«8) | lByte;
источник

e🦀

eupn 🦀 in Embedded Group
Можно получить огромное число там, где не ожидаешь или наоборот
источник

DA

Dmitry Aloyan in Embedded Group
eupn 🦀
Можно получить огромное число там, где не ожидаешь или наоборот
Я эти числа отправляю по уарт, а на принимающей стороне сам собираю. Получается я сам указываю, где старший, где младший
источник

e🦀

eupn 🦀 in Embedded Group
Тогда норм
источник

DA

Dmitry Aloyan in Embedded Group
Dmitry Aloyan
#define R1 470000 // resistance of R1 (470K)
#define R2 22000 // resistance of R2 (22K)
#define R_DELTA R2/(R1+R2)
float val = (adcVal / 1024) / R_DELTA;

Используется внутреннее опорное на 1В
А вот что с формулой не так, не могу понять 🙂
источник

DA

Dmitry Aloyan in Embedded Group
По идее, я должен умножить adcVal на максимальное напряжение, но оно 1В, а значит умножать не надо
источник

T

Thorn in Embedded Group
Dmitry Aloyan
А вот что с формулой не так, не могу понять 🙂
целочисленное деление
источник

DA

Dmitry Aloyan in Embedded Group
Так надо?
vin.n = (adcVal / 1024.0) / R_DELTA;
источник

T

Thorn in Embedded Group
Dmitry Aloyan
Так надо?
vin.n = (adcVal / 1024.0) / R_DELTA;
я не знаю, как вам надо, но 1023/1024 (например) будет 0
источник

DA

Dmitry Aloyan in Embedded Group
Так. Я понял. надо и резисторы тоже как дроби представить. Тогда память кончается 🙁
источник

СС

Сиие Сууие in Embedded Group
Dmitry Aloyan
Так надо?
vin.n = (adcVal / 1024.0) / R_DELTA;
в Р1 Р2 тоже точка
источник

СС

Сиие Сууие in Embedded Group
Dmitry Aloyan
Так. Я понял. надо и резисторы тоже как дроби представить. Тогда память кончается 🙁
можно их посчитать на калькуляторе
источник

DA

Dmitry Aloyan in Embedded Group
Сиие Сууие
в Р1 Р2 тоже точка
Ага. Теперь не влазит. Надо как-то ужиматься 🙂
источник

DA

Dmitry Aloyan in Embedded Group
Сиие Сууие
можно их посчитать на калькуляторе
Так компилятор же вроде в дефайнах сам считает. Или я ошибаюсь?
источник

СС

Сиие Сууие in Embedded Group
Dmitry Aloyan
Так компилятор же вроде в дефайнах сам считает. Или я ошибаюсь?
без понятия, но у вас и в формуле оно есть же, вон те 1024
источник