До сего дня жил в счастливом неведении, что напр.
32767 + 1 для 2х байт(int) всегда будет -32768.
Теперь буду знать, что всё не так просто)))
Так 9+1 будет 0
Для 1-го десятичного разряда))
Нет, там не выходим за границы. Про unsigned
типы в стандарте прямо сказано, что они должны подчиняться законам арифметики по модулю 2^n (§ 6.9.1) - “Unsigned integers shall obey the laws of arithmetic modulo 2^n where n is the number of bits in the value representation of that particular size of integer”
Большое спасибо за чёткий ответ
Ну вот, теперь осталось узнать результат 0-9
0-9=1 (для 1-го десятичного разряда)
И все сомнения должны уйти прочь)))
А вот теперь то самое в таком виде и только if(millis()-Y>0)
Потому я почти всегда пишу переменные unsigned…
Я теперь буду тоже! ТС нужно сказать спасибо за то что заставил обратить внимание на не совсем очевидные вещии о которых мы (я уж точно) иногда забываем
Не пойму, на что намёк, но это условие будет ложным , только когда millis() == Y ;
Да, не забыть про тех, кто всё объясняет…
Это не подлежит сомнению’)
Unsigned, говоришь?
Этот код уже разбирали на старом форуме насколько я помню.
Что “эквивалентные” условия if(millis()-Y>T){},if(millis()>T+Y){},if(millis()-T>Y){} и тому подобные на предмет поведения при великом переполнении можно проверить последовательностью цифр - как будто миллис может возвращать только 0,1,2…9 и имитировать на светодиоде потом. Взять T=1 (пусть будет в секундах).
Идею понял, спасибо.
Ну, в целом победил. Дело в том, что там при измерениях в дифференциальном биполярном режиме нельзя использовать VCC в качестве рефференса. Но написано об этом только в одном месте даташита и то косвенно : “Internal reference voltages of nominally 1.1V / 2.56V are provided on-chip. Alternatively, VCC can be used as reference voltage for single ended channels. There is also an option to use an external voltage reference and turn-off the internal voltage reference”.
Если в монополярном режиме, то дифференциальные измерения с VCC вроде адекватно работают. Хотя, после такой фразы из даташита, думаю, не стоит.
А вот как насчёт внешнего рефференса, пока не знаю, собираюсь попробовать.
как всё сложно, но тогда получается (если опора положительная только), что каналы несимметричны, по другому никак, значит будут ещё какие-то ограничения, хотя конечно вход может быть на сдвоенном операционнике один инвертирующий с единичным усилением, другой не инвертирующий, тогда можно ожидать, что разбег по каналам будет небольшим…вообще то я по лампам больше знаток )))
Половины слов я не понял, но на вид там всё просто. Есть пары дифференциальных входов (положительный и отрицательный).
В униполярном режиме напряжение на положительном входе всегда больше (или всегда меньше - тогда надо включить реверс полярности), чем не отрицательном. Результат замера - разница между напряжениями. Можно включить усиление в 20 раз (не 20 децибел, а именно 20 раз).
Можно также замерить разницу напряжений между положительным входом и им же самим. Это даст смещение, которое потом можно будет вычитать из измеренной разницы между входами.
В биполярном режиме тоже выдаётся разница между положительным входом и отрицательным, но она имеет право быть отрицательной. В этом случае разрядность АЦП будет 9 бит, т.к. один бит будет занят под знак.