User Tag List

Страница 20 из 30 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя
Показано с 191 по 200 из 293

Тема: Чем отличались КА1515ХМ1-031 и 1515ХМ2-001?

  1. #191

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,381
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Классическая п/п обработки прерывания сетевого таймера в ПЗУ ничего не делает с программируемым. Единственно за время обработки прерывания сетевого таймера может произойти переполнение программируемого.
    Это да, оно явно и происходило, в связи с чем иногда получалось, что как будто не записалось нужное число в буферный регистр.
    Ну что же, это все упрощает.

    Может быть и ситуация с тем, что регистр текущего значения не разблокировался иногда тоже с этим связана? Хотя сложно представить как.

  2. #192

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Может быть и ситуация с тем, что регистр текущего значения не разблокировался иногда тоже с этим связана? Хотя сложно представить как.
    Если таймер в режиме СТОП то при записи в буфер через некоторое время информация должна появится в регистре текущего значения. В режиме СТОП кстати бит готовности не устанавливается, даже если в буфер пишется ноль.

    Таким образом, если остановили таймер, но в регистре статуса стоял бит готовности, то при записи в буфер сперва из регистра текущего значения прочтется ноль, в регистре статуса сбросится бит готовности, а при втором чтении уже прочтется новое значение.

  3. #193

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,381
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Если таймер в режиме СТОП то при записи в буфер через некоторое время информация должна появится в регистре текущего значения. В режиме СТОП кстати бит готовности не устанавливается, даже если в буфер пишется ноль.

    Таким образом, если остановили таймер, но в регистре статуса стоял бит готовности, то при записи в буфер сперва из регистра текущего значения прочтется ноль, в регистре статуса сбросится бит готовности, а при втором чтении уже прочтется новое значение.
    Это потому, что бит готовности устанавливается при переходе счетчика из 1 в 0.

    Я останавливаю таймер, записываю новое значение, затем, читаю регистр текущего значения, чтобы сбросить бит готовности, но он сбрасывается не всегда, как показал тест. Правда, тест был с включенными прерываниями.

  4. #194

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Это потому, что бит готовности устанавливается при переходе счетчика из 1 в 0.

    Я останавливаю таймер, записываю новое значение, затем, читаю регистр текущего значения, чтобы сбросить бит готовности, но он сбрасывается не всегда, как показал тест. Правда, тест был с включенными прерываниями.
    А как тут может повлиять прерывание сетевого таймера? Пока не вижу взаимосвязи.

  5. #195

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,381
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А как тут может повлиять прерывание сетевого таймера? Пока не вижу взаимосвязи.
    Вот и я не вижу. Значит этот глюк надо тестировать.

  6. #196

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Вот и я не вижу. Значит этот глюк надо тестировать.
    Значит надо взять программу с глюками и сначала с помощью BIS #400,@#177054 запретить сетевой таймер в канале ПП, после теста разрешить с помощью BIC #400,@#177054.

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

  8. #197

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,381
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Значит надо взять программу с глюками и сначала с помощью BIS #400,@#177054 запретить сетевой таймер в канале ПП, после теста разрешить с помощью BIC #400,@#177054.
    Логично) Я примерно так и сделал, только запретил все прерывания)

  9. #198

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Логично) Я примерно так и сделал, только запретил все прерывания)
    Ну можно по моему методу, все остальные прерывания будут разрешены.

  10. #199

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,381
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Нашел очень интересный глюк.
    Если запустить такую конструкцию при остановленном таймере:

    1) Записываем в буферный регистр число
    2) Если содержимое регистра текущего значения не равно числу, то идти на пункт 1

    Так вот, при некором положении в коде и стечении обстоятельств, эта конструкция зависает. Проверить почему - не представилось возможным, т.к. любое вмешательство в нее убирает глюк.

    Зависает как при 16мкс, так и при 2мкс. Другие значения в отдельности не проверял.

    Привожу тест с этим глюком. Если при запуске он повиснет, значит зависла данная конструкция. Проверять только на реале.

    p.s.: Глюк выяснен. Исходя из ниже приведенной информации, если цикл чтения синхронен с периодом таймера, и момент чтения попал на фронт PCLK, то цикл будет вечным, т.к. регистр текущего значения никогда не разблокируется, и все время будет содержать ноль.
    Вложения Вложения
    Последний раз редактировалось Titus; 02.02.2013 в 03:46.

  11. #200

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,381
    Спасибо Благодарностей отдано 
    1,698
    Спасибо Благодарностей получено 
    2,217
    Поблагодарили
    871 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Итак, обновленный тест показал следующие результаты:

    1) Работа таймера в режиме счета/останова отличается лишь тем, что в режиме счета по фронту PCLK декрементируется счетчик таймера, а в режиме останова сохраняет свое значение.
    2) Значение из счетчика в регистр текущего значения переписывается по отрицательному фронту PCLK, таким образом, в режиме счета невозможно получить на выходе число, загруженное в буферный регистр, т.к. по переднему фронту PCLK оно декрементируется, а по заднему уже уменьшенное на единицу запишется в регистр текущего значения.
    3) Флаг нуля счетчика формируется по отрицательному фронту PCLK, если в РЕГИСТРЕ ТЕКУЩЕГО ЗНАЧЕНИЯ, а не в счетчике содержится ноль, не зависимо от режима пуск/стоп. Таким образом можно получить счет от нуля до нуля без переполнения, т.к. пройдя счетчик мы сразу получим значение 0xFFF.
    4) Если в регистре текущего значения в режиме останова находится число 0, то он будет блокироваться вновь и вновь по фронту PCLK, независимо от содержимого счетчика. Таким образом, чтение регистра текущего значения совпавшее с очередным фронтом PCLK, мешает разблокировке регистра текущего значения, с вероятностью тем большей, чем меньше период PCLK.
    5) Содержимое буферного регистра записывается в счетчик по фронту PCLK в следующих случаях:
    а) Переход флага нуля 0->1
    б) Ноль в 0-м бите регистра состояния
    в) Новый фронт по линии внешнего события
    Из-за того, что буферный регистр записывается в счетчик только по фронту PCLK, кратковременная установка нуля в 0-м бите регистра состояния, попавшая между двумя фронтами PCLK (а это до 96 тактов ПП), не окажет воздействия.


    Скрытый текст



    [свернуть]
    Вложения Вложения
    • Тип файла: zip TSTMR.ZIP (1.5 Кб, Просмотров: 1207)
    Последний раз редактировалось Titus; 02.02.2013 в 03:19.

Страница 20 из 30 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Куплю Т34ВГ1 (КА1515ХМ1-216)
    от moxjemi в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 15.04.2011, 12:07

Ваши права

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