Fyva
В тексте на ассемблере указано, что высчитываются и сохраняются в EEPROM значения "65536*65536*No/no". У меня вопрос - для чего нужен к-т "65536*65536". Никак не пойму, как из (программа из этой ветки):
"; результат {[(65536*65536*No/no)*nx]/Nx}^2"
получается:
"; результат Lo*10*{[(No/no)*(nx/Nx)]^2-1}" ??
Что-то куда-то сдвигается/отсекается?
В асме плохо разбираюсь - только с "букварём", а доделать под себя очень охота. Я сделал вариант LC на 7-ми сегментном индикаторе , получил стабильность показаний, но с индуктивностями у меня проблемы с тем вариантом прошивки. Прошу Вашей помощи.Выполнение арифметических операций на ассемблере имеет свои сложности. Переполнение разрядной сетки при умножении в этой программе реализовано за счет 80-разрядного регистра, а потерю значимости при выполнении операций деления за счет предварительного умножения делимого на 65536*65536.
Естественно, после выполнения расчетов идет отбрасывание 4-х младших регистров результата.
Попробую расписать работу программы для LCD 16x2 по шагам:
-сначала, как обычно, идут все необходимые предустановки- инициализация индикатора и начальный вывод на индикацию, инициализация работы таймера Т1 в режиме работы CAPTURE по входу ICP и установка необходимых прерываний
-разрешение работы соответствующего генератора
-ожидание и обработка всех разрешенных прерываний CAPT, OVER_T1 с анализом окончания времени измерения, за которое подсчитывается целое число периодов измеряемой частоты Nx и соответствующее этому числу значение nx. При этом есть две особенности:
1-после окончания заданного времени измерения, определяемым как число переполнений Т1 (при тактовой 8МГц за принятое время измерения 0.33 сек Т1 переполнится 40 раз), таймер не останавливается, а идет ожидание следующего активного фронта сигнала на входе ICP, по которому таймер останавливается. Таким образом получается значение времени прохождения целого числа периодов измеряемой частоты Nx, выраженное в периодах частоты тактирования nx.
2- если за время 32 сек. не прошло ни одного периода входного сигнала вырабатывается признак перегрузки прибора.
-далее идет расчет полученного значения, т.е. получение отношения (nx/Nx)/(no/No), где No и no соответствуют результату, полученному при нажатой кнопке ">0<" и принятых за нулевое значение.
-определяется диапазон, в который попал результат и его преобразование для вывода на индикатор.
-собственно сам вывод на индикатор
-и, все сначала.
Для LED-индикации все усугубляется тем, что все эти действия происходят на фоне динамической индикации.
hd1000
А насколько сложно будет этот вывод "преобразовать" в понимаемый контроллером 8812 или 8544 код? Ведь полностью его библиотеку загонять в программу будет не нужно - необходимые символы не займут много памяти. Изучаю LCD только вторую неделю, купил мешок 3310х LCD по цене семечек
Зажёг от LPT. А выводить нужное из контроллера туда пока не умею. Потому что контроллеры и
Си изучаю второй день
Это не светиком мигать... а есть ли у контроллера совсем немного свободной от существующей прошивки памяти?
Прибор by R2-D2 с любимым дисплеем собирать не желаю по причине применения там недоступного
в сибирской тайге камня PIC18...как там его за ногу, короче, нету. Последний вариант программыК сожалению, что такое контроллеры 8812 или 8544 не знаю

Свободной памяти в последнем варианте с анализом достаточного напряжения питания осталось 7 слов, да и в более ранних - не густо.
svs39
Мне неудобно перед автором за беспокойство, честно! Но то что хочу я пригодится и другим. Не хотел я лезть в асм, но видно такая судьба.
Но без помощи автора мне будет ОЧЕНЬ ТРУДНО, поэтому прошу автора давать подсказки как сейчас, ПОЖАЛУЙСТА! Я еще обращусь, т.к. данное решение по измерению CL , по моему, архиоптимально и годится каждому. Я уже запустил на макетке с 1602, но вот свои опции постараюсь сделать.
Теперь вопрос- получается что при ">0<" рабочие параметры пишутся в EEPROM, а может писать в ОЗУ чтоб не портить EEPROM?- нажать кнопку нетрудно.У меня есть приборы, работающие станках сборки подшипников собранные на AT90S8515. Специфика состоит в том, что их приходится, при смене типа подшипника, часто переналаживать, естественно с перезаписью EEPROM. Так вот, EEPROM оказалась на высоте. ИМХО, числа циклов перезаписи EEPROM хватит с лихвой на весь срок работы прибора.
Посмотрел цены на индикаторы. Дааа! Удручающая картина по LCD 16x2. Зато снова появились TIC55 и TIC8148.
TIC55_8148_LCD_16x2.GIF