User Tag List

Показано с 1 по 10 из 177

Тема: Вопросы по Вектору (для эмулятора)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я немного подправил тест i8253.
    В нём первоначально сразу после записи в счётчики считывались значения, потом ожидание двух прерываний и снова считывание (вторая пара).
    Я исправил, что-бы считывал сразу два раза без прерываний.
    Получилось, что во всех режимах разница между первой и второй парой одинакова, но счёт в режимах 1 и 5 начинается не с записанного FFFFh а с A111h !!!
    Вот попробуй, когда запустятся 1й и 5й режимы, у меня на реале такой результат:
    FFF9 00
    FFD5
    A10B 01
    A0E7
    FFF9 02
    FFD5
    FFF4 03
    FFAC
    FFF9 04
    FFD5
    A10B 05
    A0E7
    FFF9 06
    FFD5
    FFF4 07
    FFAC
    Вложения Вложения
    • Тип файла: zip I8253.zip (512 байт, Просмотров: 48)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    27.11.2015
    Адрес
    г. Самара
    Сообщений
    341
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    KTSerg,
    у меня совпадает с твоими данными за исключением 1 и 5 режимов. В 1 и 5 у меня FFFF всегда, ибо в доках сказано что счет начинается только когда GATE переходит из состояния 0 в 1. Других данных у меня нет. Я даже не знаю что можно сделать.

    А ты можешь еще исследовать 1 и 5? Например, замени в tst8253 режим на 1 или 5. Посмотри какие значения будут считываться.

    Тут бы b2m помог. У него в EMU тесты как на реальном железе показывают.
    Но он пока молчит...

    - - - Добавлено - - -

    о! наткнулся на тему про ви53.
    там svofski пишет:
    "Еще интересный момент, который не выкопаешь ни в какой доке. После первого теста в режиме "0" счетчик продолжает считать. Дальше тест программирует его на режим "1" и загружает в него значение $FFFF. Но, поскольку сигнал GATE в Векторе всегда "1", это число не переписывается во внутренний счетчик и счет продолжается как будто бы записи не было. Самое занятное в том, что операция установки режима в "1" все же останавливает счетчик, а загрузка значения, которое в него так никогда и не попадает, продолжает счет. "

    Вот, это похоже на правду

    - - - Добавлено - - -

    Получается, что если Gate=1 то при переключении режима на 1, останавливает счет, а занесение любого значения в счетчик продолжает счет со старого значения. Типа, бага..
    В доках, кстати, диаграммы рисуют варианты запуска режима 1(и 5) когда GATE=0 вначале, а потом переходит в 1.

    - - - Добавлено - - -

    в общем, сэмулировал я этот глюк.
    Но вместо A10B у меня A109. И в десятичном тесте тоже на 2 меньше.
    Где-то я не задерживаю достаточно.
    Попробую отыскать эти 2 такта.

  4. #3

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Saar Посмотреть сообщение
    Получается, что если Gate=1 то при переключении режима на 1, останавливает счет, а занесение любого значения в счетчик продолжает счет со старого значения. Типа, бага..
    Не бага, а фича
    Мы же вроде разобрались выше, что установка режима останавливает счёт, а загрузка делителя - разрешает. Вот только загружается не сам счётчик, а регистр, откуда в режимах отличных от 1 и 5, загружается счётчик (либо сразу после загрузки делителя, либо когда он доходит до нуля). Особенность режимов 1 и 5 в том, что счётчик загружается из регистра (куда загружен делитель) по фронту gate (т.е. аппаратный строб). До этого момента он просто продолжает считать дальше, даже когда дойдёт до нуля. А срабатывание таймера, а именно заём переноса при переходе через ноль, в этих режимах на выходе никак не отражается, пока не было строба запуска.

    Т.е. схематично можно изобразить канал таймера как: [регистр делителя] -> [счётчик] -> [регистр latch]
    Пишем мы в регистр делителя, а читаем из регистра latch.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Код эмулятора
    от jasmin в разделе Программирование
    Ответов: 6
    Последнее: 15.03.2015, 18:53
  2. Подключение эмулятора AY-AVR к Вектору
    от marinovsoft в разделе Вектор
    Ответов: 30
    Последнее: 24.11.2014, 18:49
  3. Вопросы по Вектору (нужна помощь)
    от dk_spb в разделе Вектор
    Ответов: 12
    Последнее: 05.04.2010, 15:28
  4. как сделать без эмулятора
    от женя999 в разделе Эмуляторы
    Ответов: 6
    Последнее: 08.04.2009, 20:38
  5. Работа с НМЛ из эмулятора
    от Error404 в разделе Эмуляторы
    Ответов: 6
    Последнее: 28.11.2007, 23:29

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •