Код: Выделить всё
PORTC = Dig[(lvl/255)*10];а именно участок
Код: Выделить всё
(lvl/255)*10переменная lvl типа int может меняться в промежутке от 0 до 255.
она берётся из АЦП, если это важно.
Код: Выделить всё
PORTC = Dig[(lvl/255)*10];Код: Выделить всё
(lvl/255)*10максим-ка писал(а):а именно участокрезультат выражения постоянно не правильный(0).Код: Выделить всё
(lvl/255)*10
переменная lvl типа int может меняться в промежутке от 0 до 255.
она берётся из АЦП, если это важно.
Код: Выделить всё
lvl = (lvl1/255)*10;
PORTC = Dig[lvl];тогда скачиваете книжку "Язык Си" Кернигана и Ритчи (основателей языка) и внимательно-внимательно читаете про то, как Си работает с числами и константами разных типов, какие вобще бывают типы чисел и чем они отличаются, как вычисляются выражения и т.п. можно и другие книги (лучше зарубежных авторов). когда сами сможете ответить на вопрос, почему у вас получался ноль - тогда можно будет считать, что цель почти достигнута.максим-ка писал(а):хотелось бы правильно
максим-ка писал(а):сделал так:
но правильно ли? может можно проще?
Код: Выделить всё
PORTC = Dig[lvl*10/255];//LVL по любому придется double делать
нет, чтобы книжку почитать...vitalik_1984 писал(а):Код: Выделить всё
PORTC = Dig[lvl*10/255];//LVL по любому придется double делать
Код: Выделить всё
PORTC = Dig[(lvl*10)/255];//LVL по любому НЕ придется double делатьМастер Ломастер писал(а):нет, чтобы книжку почитать...vitalik_1984 писал(а):Код: Выделить всё
PORTC = Dig[lvl*10/255];//LVL по любому придется double делатьКод: Выделить всё
PORTC = Dig[(lvl*10)/255];//LVL по любому НЕ придется double делать
vitalik_1984 писал(а):Код: Выделить всё
PORTC = Dig[lvl*10/255];//LVL по любому придется double делать
Может поясните чем отличаются эти строки? На мой взгляд ничемМастер Ломастер писал(а):Код: Выделить всё
PORTC = Dig[(lvl*10)/255];//LVL по любому НЕ придется double делать
если бы я хотел сказать про аппаратную часть МК, я бы сказал про аппаратную. но я хотел сказать про программу - и я про нее сказал. проблема автора этой строчки кода в том, что он не понимает, как в Си вычисляются выражения... что при целочисленном делении МЕНЬШЕГО числа на БОЛЬШЕЕ всегда получается ноль, который потом как ни умножай - будет ноль. и аппаратура МК тут совершенно ни при чем.vitalik_1984 писал(а):герой мастер говорит загадками.
сказал бы что нужно бит выставить, чтоб перевести сохранение данных ацп в формат 8старших бит,тогда не придется.
тогда скажите, какой из вариантов будет считать хоть как-то (может, и не так, как желал бы автор, но давать не всегда нулевой результат):BerZerK-ku писал(а):Может поясните чем отличаются эти строки? На мой взгляд ничем
мой ответ:Мастер Ломастер писал(а):тогда скажите, какой из вариантов будет считать хоть как-то (может, и не так, как желал бы автор, но давать не всегда нулевой результат)
Чего я не правильно сказал-то? Зачем этот пункт в вашем посте? Вы же сами пишите что есть один вариант ненулевойBerZerK-ku писал(а):оба выражения не будут давать всегда 0 результат, даже в том что вы привели.

Да как нет-то? У вас наверное фильтр стоит, настроенный на ваше мнение. Вы вглядитесь получше в англицкие буковки и может они у вас в слова сложатся.Мастер Ломастер писал(а):даже нет и словечка о порядке вычисления подряд идущих одноприоритетных операций