ОЧЕНЬ НУЖНА ПОМОЩЬ ЖИВЫХ МИКРОКОНТРОЛЛЕРЩИКОВ!!!
- Сообщения: 16
- Зарегистрирован: Чт янв 08, 2009 10:05:23
За вчера понял почему нужно будет переводить в 2-10 системму. )))))Однако когда это делать? Т.е. когда вычислил уже все значения и перед самым выводом на индикаторы? или с самого начала-снял с ацп и сразу переводим, а потом все операции с числом в 2-10 системе. И еще можно спросить: Точку десятичную на индикаторе просто засветил. Подал опорное на ацп 5.12 вольта. Тогда при выходе с ацп 1111111 это должно отображаться как 5.0 на индикаторе. Я эти 11111111 (256) делю на 5 и получаю как 50. А если десятичная точка горит всегда-будет 5.0. Значит нужно выводить число 50...но как? в 2-10 системе это будет 1 байт: старшие 4 бита-число 5, младшие 4-число 0. И дальше как? занулять младшие, выводить отдельно старшие на первый разряд индикатора, потом наоборот. Или как поступить?
чайнику нужна помощь!
- Реклама
Да.levon66 писал(а):За вчера понял почему нужно будет переводить в 2-10 системму. )))))Однако когда это делать? Т.е. когда вычислил уже все значения и перед самым выводом на индикаторы?
Должно отображаться как 5.1levon66 писал(а):Подал опорное на ацп 5.12 вольта. Тогда при выходе с ацп 1111111 это должно отображаться как 5.0 на индикаторе.
Отдельно выводятся старшие биты, отдельно - младшие. Стоит сделать динамическую индикацию кстати (выдается 4 бита старших на порт и подается напряжение на общий вывод диодов старшего разряда, после - обмен байтов внутри регистра, и вывод на порт + включение младшего разряда, интервал - скажем в 10 мсек между переключениями)levon66 писал(а):в 2-10 системе это будет 1 байт: старшие 4 бита-число 5, младшие 4-число 0. И дальше как? занулять младшие, выводить отдельно старшие на первый разряд индикатора, потом наоборот. Или как поступить?
- Сообщения: 16
- Зарегистрирован: Чт янв 08, 2009 10:05:23
- Сообщения: 16
- Зарегистрирован: Чт янв 08, 2009 10:05:23
на счет страших и младших понял...читаются видимо только старшие.
а как можно сделать этот перевод из двоичной системы в двоично-десятичную? команд таких нет. а поиски написанных программ с такими оперциями не помогают. мысль о том, что каждой комбинации bin сопоставить 2-10 число это как-то пугает.
и еще вопрос. как реализовать можно вычисление среднего из 10 последних показаний. Есть мысль, что есть 10 разрядов. Вычислил среднее, потом получил новое измерение-записал вместо 1-го из тех десяти, вычислил среднее. ПОотом получил измерение записал вместо второго, вычислил и т.д. Но как это в асме сделать. Это ведь не паскаль с циклами обычными. Как-то может связываться с SP???
а как можно сделать этот перевод из двоичной системы в двоично-десятичную? команд таких нет. а поиски написанных программ с такими оперциями не помогают. мысль о том, что каждой комбинации bin сопоставить 2-10 число это как-то пугает.
и еще вопрос. как реализовать можно вычисление среднего из 10 последних показаний. Есть мысль, что есть 10 разрядов. Вычислил среднее, потом получил новое измерение-записал вместо 1-го из тех десяти, вычислил среднее. ПОотом получил измерение записал вместо второго, вычислил и т.д. Но как это в асме сделать. Это ведь не паскаль с циклами обычными. Как-то может связываться с SP???
чайнику нужна помощь!
- Сообщения: 16
- Зарегистрирован: Чт янв 08, 2009 10:05:23
На счет перевода из 2 в 2-10 систему понял. но как программно реализовать можно вычисление среднего из 10 последних показаний. Есть мысль, что есть 10 разрядов. Вычислил среднее, потом получил новое измерение-записал вместо 1-го из тех десяти, вычислил среднее. ПОотом получил измерение записал вместо второго, вычислил и т.д. Но как это в асме сделать. Это ведь не паскаль с циклами обычными. Как-то может связываться с SP???
________________
а задача вот какая:с ацп с интервалом в 1с выводить-текущее, мин, макс, и среднее из 10 последних. Индикаторы 4 по 2 разряда. а еще кнопки пуск и сброс предусмотреть.
________________
а задача вот какая:с ацп с интервалом в 1с выводить-текущее, мин, макс, и среднее из 10 последних. Индикаторы 4 по 2 разряда. а еще кнопки пуск и сброс предусмотреть.
чайнику нужна помощь!
- Реклама
Циклический буффер в памяти, допустим с адресами с 33 по 42 байт... Который заполняется по циклу, и при каждом выводе показаний - все значения из него суммируются.levon66 писал(а): но как программно реализовать можно вычисление среднего из 10 последних показаний.
Хотя рациональнее бы было делать усреднение 8 или 16 измерений.
P.S. суммирование нужно делать 16бит, подготовку к выводу на экран (деление на 5 и т.д.) - уже непосредственно перед выводом, меньше погрешность из-за рассчетов будет.
- Сообщения: 16
- Зарегистрирован: Чт янв 08, 2009 10:05:23
Проблема просуммировать N ячеек из диапазона памяти, а потом результат поделить на N?
Или проблема работы с указателем на ячейку памяти данных (mov a, @r0) - каждый отсчет увеличивать указатель, а при достижении 43 - менять на 33?
Или проблема работы с указателем на ячейку памяти данных (mov a, @r0) - каждый отсчет увеличивать указатель, а при достижении 43 - менять на 33?


