Все раскрыто. Но это неважно, ведь не Вам решать, нужна мне та или иная информация, - а мне. Она просто нужна. Потому я и открыл тему. Кстати, Вам бы понравилась моя цель, но несмотря на это я предпочитаю молчать, подчеркивая важность именно самой информации, а не того, для чего она предназначена. Тогда сразу и видно - кто владеет информацией, а кто просто пришел погундосить.Сообщение от psb
Black_Cat-у огромная благодарность за терпение, возможно мои вопросы необычны и туповаты - оттого и непонятны, а вовсе не из-за того, что из написанного ничего не понять. Ну так потому и раздел для темы выбран соответствующий.
А что Вы сказали бы насчет 4 таймеров в новом микроконтроллере, после того, как в старых вы постоянно теснились и пытались обойтись имеющимися 1-2? И регистры-то у каждого таймера отдельные, и различные биты управления свои собственные, причем все таймеры одинаковые, 32х-битные с таким же делителем? Зашибись - один таймер на систему, другой на антенну, третий... стоп! И вдруг выясняется, что по факту в одно время работает лишь один таймер. Сначала не верится - может что-то не так сделал? И так переписываешь управление, и эдак... но нет - даже 2 таймера и то не работают одновременно! А в даташите - ни в одной из редакций - об этом ни слова! На блок-схемах красуется 4 отдельных независимых блока, а на деле он один. И ерраты молчат как рыбы об лед! И кто здесь кому чего должен?! Ведь написано же! И даже нарисовано - сами знаете для кого!!Сообщение от psb
Все мои основные вопросы в первом посте. Цель нужно было бы выразить, если без нее вопросы были бы непонятными, а с ней - понятными.Сообщение от psb
Вот вам с явным (повторным) обозначением моей цели станет понятнее? Сомневаюсь. Не потому что с Вами что-то не так, а потому что цель не внесет никакой ясности.
В том-то и дело, что не одинаковый. Сейчас объясню. Когда счетчик уменьшается до 0, предполагается, что именно в момент обнуления (или перехода с 0 на -1) счетчик загружается значением регистра периода. Тут вроде все ясно.Сообщение от psb
Когда же счетчик увеличивается с 0 до значения регистра периода, необходимо при каждом увеличении сверяться со значением периода; если значение счетчика стало больше значения регистра периода, тогда обнуляем счетчик и по новой.
В случае уменьшения счетчика, скажем, запишу-ка я 4095 в регистр периода. Сначала счетчик дойдет до 0, после чего загрузит в себя значение 4095. Тут я через тактов (этого счетчика) 50 записываю новое значение в регистр периода, к примеру, 41. Но пока счетчик не обнулится, это число ему по барабану.
В случае увеличения счетчика сделаем то же самое, запишем 4095. Скорее всего, это число больше или равно ранее записанному, так что счетчик дойдет до 4095 и обнулится. Через 50 тактов (этого счетчика) записываем новое значение 41. Однако, счетчик наш уже насчитал больше 41, поэтому он тут же сбросится и начнет новый отсчет.
Само собой во всех случаях перезагрузка/сброс счетчика инвертирует выход.
Вот такая, вкратце, разница. Если учесть, что в AY полное обновление регистра периода осуществляется в 2 прохода (в общем случае), то картина начинает усложняться. Что при этом делается при генерации шума, я не понял, но вероятно он может получиться другим, нежели по привычной схеме эмуляции. Однако такой механизм работы со счетчиками логично распространить на всю микросхему.
В принципе, в пределах ~20 ms периода обновления регистров AY это не каждый услышит. Но вспомним, как нам нравилось изголяться со звуком на Beeper? Тяжко, но прикольно, если постараться. А тут - целых 3 независимых канала, у каждого своя громкость, можно точно рассчитать и промодулировать меандр AY чем-нибудь этаким.
И вот тут любому станет слышно, при какой эмуляции звучит правильно, а при какой - не очень.
---------- Post added at 06:29 ---------- Previous post was at 06:12 ----------
Блин, ссылку надо найти...




.
Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
