You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Blaire Cas (Shamin Alex), [29.07.2024 16:19]
Обнаружил некий бажок в UKNCBTL (rev. 746). Программируемый таймер в ПП. Загружаем значение в 177712, считываем 177714 чтобы принялось, разрешаем прерывание и устанавливаем длительность счета таймера в 177710 - таймер пошел считать, досчитает до 0 - дергает прерывание по @#304 - вроде все окей. Но на реальной УКНЦ после этого таймер останавливается (нужно еще раз дергануть 177714 чтобы пошел еще раз считать). В эмуляторе он заново пойдет и так и будет постоянно прерывание дергать.
Blaire Cas (Shamin Alex), [29.07.2024 16:20]
То-есть впечатление что в эмуле 177714 нерабочий и не делает что надо. Тут конечно нужен Алекс К, а то этот таймер описан непойми где и как
Blaire Cas (Shamin Alex), [29.07.2024 16:22]
Да всю голову поломал почему на эмуляторе работает, а на реальной - шиш :)
Blaire Cas (Shamin Alex), [29.07.2024 16:24]
ПРИ ОБНУЛЕНИИ СЧЕТЧИКА ИЛИ ФИКСАЦИИ
ВНЕШНЕГО СОБЫТИЯ ЗАГРУЗКА РЕГИСТРА ТЕКУЩЕГО ЗНАЧЕНИЯ ПРЕКРАЩАЕТСЯ
ДО СЧИТЫВАНИЯ ЕГО ДАННЫХ. СЧЕТЧИК ЗАГРУЖАЕТСЯ ИЗ БУФЕРА И ПРОДОЛ-
ЖАЕТ РАБОТАТЬ НА ВЫЧИТАНИЕ.
Blaire Cas (Shamin Alex), [29.07.2024 16:25]
Вот как это понять из описания прототипа?
Blaire Cas (Shamin Alex), [29.07.2024 16:26]
Тут две фразы сразу и загрузка прекращается до считывания и счетчик загружается. Нет бы написали - после считывания счетчик загружается...
Blaire Cas (Shamin Alex), [29.07.2024 16:40]
Ну там еще и вторая фраза: ОТСЧЕТ ВРЕМЕНИ ПРОВОДИТСЯ ОТ МОМЕНТА ПУСКА ТАЙМЕРА ДО МОМЕНТА
ЛИБО ЕГО ОБНУЛЕНИЯ, ЛИБО ПОЯВЛЕНИЯ ВНЕШНЕГО СОБЫТИЯ. ПОСЛЕ ПУСКА
ТАЙМЕР РАБОТАЕТ В ЦИКЛИЧЕСКОМ РЕЖИМЕ.
—-
то-есть написано что считать будет до обнуления (и перестанет считать) и тут-же что "работает в циклическом режиме" - любой человек подумает раз в циклическом значит дальше тоже будет считать.. ааааа мой мозг
Blaire Cas (Shamin Alex), [29.07.2024 16:44]
Итого мое ИМХО надо сделать так что когда таймер в эмуляторе досчитал до 0 - остановить его и ждать пока не произойдет команда чтения 177714
Nikita Zimin, [29.07.2024 16:45] @blairecas можешь сделать изолированный тест, на котором это можно протестить и на реале и в эмуляторе?
Blaire Cas (Shamin Alex), [29.07.2024 16:46]
Да у меня есть тест с нотами, на эмуле ноты будут звучать ибо прерывание постоянно будет дергаться без чтения 177714, на реале произойдет фиг ибо прерывание не дернется ни разу
Blaire Cas (Shamin Alex), [29.07.2024 16:50]
tstton.sav
Blaire Cas (Shamin Alex), [29.07.2024 16:51]
Вот это будет звучать в эмуляторе и кстати даже ноты верно звучать будут. Оттуда сейчас убраны все tst @#177714 - но ей пофиг, пашет :)
Blaire Cas (Shamin Alex), [29.07.2024 16:51]
Если у кого есть реал (помимо моего) просьба запустить и послушать тишину (или не тишину)
Nikita Zimin, [29.07.2024 16:52]
Т.е. на реале тишина?
Blaire Cas (Shamin Alex), [29.07.2024 16:52]
Ну да, там бипер дергается туда-сюда от прерывания. Без чтения 177714 таймер не будет считать и прерывания по обнулению не возникнет
Blaire Cas (Shamin Alex), [29.07.2024 16:52]
tstton.mac
Blaire Cas (Shamin Alex), [29.07.2024 16:53]
Мак немного сложен, но смысл думается понятен увидев что там закомментировано с 177714 (если их раскомментарить - на реале заработает тоже)
https://t.me/MC0511UKNC/47331/56025
Alexey Kisly, [29.07.2024 19:25]
Там программируемый таймер неправильно реализован. В нём четыре регистра - состояния (0177710), буферный (0177712), текущего значения (0177714) и счётчик. Вот счётчик ни на какие регистры не выводится. Он считает и загружает своё значение в 0177714. Когда появляется готовность внешнего события или обнуления, то загрузка прекращается. А в UKNCBTL как такового счётчика нету, он вроде совмещён с регистром 0177714.
По тестам это можно увидеть по моим тестам на диске PTEST, тесты начинающиеся с P*. Они работают без прерываний. В этих тестах подбирается размер очереди. Если после запуска таймера и прохода тестовой команды в 0177014 оказался ноль, то очередь уменьшается. И так до чтения ненулевого значения. А в UKNCBTL таймер всё время грузит в 0177014, даже если возникла готовность обнуления.
https://t.me/MC0511UKNC/47331/56002
Blaire Cas (Shamin Alex), [29.07.2024 16:19]
Обнаружил некий бажок в UKNCBTL (rev. 746). Программируемый таймер в ПП. Загружаем значение в 177712, считываем 177714 чтобы принялось, разрешаем прерывание и устанавливаем длительность счета таймера в 177710 - таймер пошел считать, досчитает до 0 - дергает прерывание по @#304 - вроде все окей. Но на реальной УКНЦ после этого таймер останавливается (нужно еще раз дергануть 177714 чтобы пошел еще раз считать). В эмуляторе он заново пойдет и так и будет постоянно прерывание дергать.
Blaire Cas (Shamin Alex), [29.07.2024 16:20]
То-есть впечатление что в эмуле 177714 нерабочий и не делает что надо. Тут конечно нужен Алекс К, а то этот таймер описан непойми где и как
Blaire Cas (Shamin Alex), [29.07.2024 16:22]
Да всю голову поломал почему на эмуляторе работает, а на реальной - шиш :)
Blaire Cas (Shamin Alex), [29.07.2024 16:24]
ПРИ ОБНУЛЕНИИ СЧЕТЧИКА ИЛИ ФИКСАЦИИ
ВНЕШНЕГО СОБЫТИЯ ЗАГРУЗКА РЕГИСТРА ТЕКУЩЕГО ЗНАЧЕНИЯ ПРЕКРАЩАЕТСЯ
ДО СЧИТЫВАНИЯ ЕГО ДАННЫХ. СЧЕТЧИК ЗАГРУЖАЕТСЯ ИЗ БУФЕРА И ПРОДОЛ-
ЖАЕТ РАБОТАТЬ НА ВЫЧИТАНИЕ.
Blaire Cas (Shamin Alex), [29.07.2024 16:25]
Вот как это понять из описания прототипа?
Blaire Cas (Shamin Alex), [29.07.2024 16:26]
Тут две фразы сразу и загрузка прекращается до считывания и счетчик загружается. Нет бы написали - после считывания счетчик загружается...
Blaire Cas (Shamin Alex), [29.07.2024 16:40]
Ну там еще и вторая фраза: ОТСЧЕТ ВРЕМЕНИ ПРОВОДИТСЯ ОТ МОМЕНТА ПУСКА ТАЙМЕРА ДО МОМЕНТА
ЛИБО ЕГО ОБНУЛЕНИЯ, ЛИБО ПОЯВЛЕНИЯ ВНЕШНЕГО СОБЫТИЯ. ПОСЛЕ ПУСКА
ТАЙМЕР РАБОТАЕТ В ЦИКЛИЧЕСКОМ РЕЖИМЕ.
—-
то-есть написано что считать будет до обнуления (и перестанет считать) и тут-же что "работает в циклическом режиме" - любой человек подумает раз в циклическом значит дальше тоже будет считать.. ааааа мой мозг
Blaire Cas (Shamin Alex), [29.07.2024 16:44]
Итого мое ИМХО надо сделать так что когда таймер в эмуляторе досчитал до 0 - остановить его и ждать пока не произойдет команда чтения 177714
Nikita Zimin, [29.07.2024 16:45]
@blairecas можешь сделать изолированный тест, на котором это можно протестить и на реале и в эмуляторе?
Blaire Cas (Shamin Alex), [29.07.2024 16:46]
Да у меня есть тест с нотами, на эмуле ноты будут звучать ибо прерывание постоянно будет дергаться без чтения 177714, на реале произойдет фиг ибо прерывание не дернется ни разу
Blaire Cas (Shamin Alex), [29.07.2024 16:50]
tstton.sav
Blaire Cas (Shamin Alex), [29.07.2024 16:51]
Вот это будет звучать в эмуляторе и кстати даже ноты верно звучать будут. Оттуда сейчас убраны все tst @#177714 - но ей пофиг, пашет :)
Blaire Cas (Shamin Alex), [29.07.2024 16:51]
Если у кого есть реал (помимо моего) просьба запустить и послушать тишину (или не тишину)
Nikita Zimin, [29.07.2024 16:52]
Т.е. на реале тишина?
Blaire Cas (Shamin Alex), [29.07.2024 16:52]
Ну да, там бипер дергается туда-сюда от прерывания. Без чтения 177714 таймер не будет считать и прерывания по обнулению не возникнет
Blaire Cas (Shamin Alex), [29.07.2024 16:52]
tstton.mac
Blaire Cas (Shamin Alex), [29.07.2024 16:53]
Мак немного сложен, но смысл думается понятен увидев что там закомментировано с 177714 (если их раскомментарить - на реале заработает тоже)
tstton.zip
The text was updated successfully, but these errors were encountered: