Size: a a a

2020 June 21

VK

Viacheslav Kaloshin in Embedded Group
правда, она еще и курсор гасит
источник

DA

Dmitry Aloyan in Embedded Group
Стоп. Вроде write и так пихает байт без изменения.
Serial.write(27);
Serial.write("c");

выводит ␛c

видимо 27 не подходит
источник

VK

Viacheslav Kaloshin in Embedded Group
Dmitry Aloyan
Стоп. Вроде write и так пихает байт без изменения.
Serial.write(27);
Serial.write("c");

выводит ␛c

видимо 27 не подходит
ну вот разбирайтесь, кто это у вас такой умный выводит вот это маленькое esc 😉
источник

VK

Viacheslav Kaloshin in Embedded Group
а не передает его дальше
источник

DA

Dmitry Aloyan in Embedded Group
Viacheslav Kaloshin
ну вот разбирайтесь, кто это у вас такой умный выводит вот это маленькое esc 😉
Ну да, кто-то юникод видимо включил. Ваш пример выводится так ␛[0m[?25l[2J
источник

VK

Viacheslav Kaloshin in Embedded Group
Вот-вот, кто-то из самых лучших побуждений esc перехватывает и показывает отдельно
источник

DA

Dmitry Aloyan in Embedded Group
Короче. Сделаю в одну строку все 🙂 Надоело
источник

DA

Dmitry Aloyan in Embedded Group
Коллеги, прошу помощи в формуле, видимо уже туплю под вечер.
Снимаю напряжение с резестивного делителя (0-30в), использую stm32.

((voltageAdc * 3.3) / 1024.0) / RDelta;

Формула выше выдает корректные значения, но я теряют 2 бита разрядности.

((voltageAdc * 3.3) / 4095.0) / RDelta;

Воторая формула выдает уже не верные значения. Как мне исправить формулу, что бы задействовать весь диапазон 12бит ?
источник

DA

Dmitry Aloyan in Embedded Group
RDelta - это посчитанный коофициент делителя
источник

DS

Dmitriy Salko in Embedded Group
Dmitry Aloyan
RDelta - это посчитанный коофициент делителя
напишите как у вас в коде
источник

DA

Dmitry Aloyan in Embedded Group
Dmitriy Salko
напишите как у вас в коде
#define R1 47000.0
#define R2 4700.0
#define RDelta (R2/(R1+R2))

uint32_t currentVoltage = analogRead(PB0);
 prevVoltageAdc = (prevVoltageAdc * (5 - 1) + currentVoltage) / 5; // MEDIANA
 float inputVoltage = ((prevVoltageAdc * 3.3) / 4095.0) / RDelta; // Convert to real voltage
источник

DA

Dmitry Aloyan in Embedded Group
5 и 5 - 1 - это тоже константы для усреднения значения
источник

DS

Dmitriy Salko in Embedded Group
Старайтесь не использовать float без необходимости
источник

P.

Pavel . in Embedded Group
рекомендую распилить на пару функций:
1) конверсия в милливольты
2) применение коеф делителя
static inline uint32_t adc_raw_to_millivolts(int32_t ref_mv, uint8_t resolution, int32_t val) {
   int32_t adc_mv = val * ref_mv;
   return (adc_mv >> resolution);
}
uint32_t mv = adc_raw_to_millivolts(3300, 12, analogRead(PB0));
mv = mv * R2 / (R1+R2)
источник

P.

Pavel . in Embedded Group
Dmitriy Salko
Старайтесь не использовать float без необходимости
поддерживаю. Я бы даже сказал "не примерять float/double без FPU"
источник

DS

Dmitriy Salko in Embedded Group
Какая разрядность ацп и какой ИОН?
источник

DS

Dmitriy Salko in Embedded Group
Pavel .
поддерживаю. Я бы даже сказал "не примерять float/double без FPU"
Ну там стм32, поэтому это больше рекомендация)
источник

DA

Dmitry Aloyan in Embedded Group
Dmitriy Salko
Какая разрядность ацп и какой ИОН?
12-bit
источник

DP

Dmitry Ponyatov in Embedded Group
Переслано от Dmitry Ponyatov
если открыть API железа и драйвера — бесплатно, народец сам пинвина в телефон раскорячит
до Huawei тоже не доходит
источник

DA

Dmitry Aloyan in Embedded Group
Dmitriy Salko
Какая разрядность ацп и какой ИОН?
ИОН - расшифровать не смог 🙂
источник