Перейти к содержанию
    

ZAO

Участник
  • Постов

    8
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о ZAO

  • День рождения 25.06.1974

Контакты

  • Сайт
    Array
  • ICQ
    Array
  1. Сталкивался с такой проблемой. Ошибка возникала в тракте буферизации данных направляемых на ПК. Решил за счет уменьшения тактовой частоты до 125 Мгц и соответственно увеличения размера шины данных до 64 бит.
  2. Требуется проверить все регистры? Тогда можно записать в каждый последущий регистр значение предыдущего и проинвертировать. По окончании посмотреть результат. Правда в таком случае не узнаем какой регистр неисправен. ldi R16,0x55 com R16 mov R0, R16 com R0 mov R1, R0 com R1 . . . cpi R31, 0xAA err: brne err Или проверять в шахматном порядке для R0 и R16 соответственно: ldi R16,0x55 mov R0, R16 com R0 mov R16, R0 cpi R16, 0xAA err: brne err и т.д. перебрать по парам.
  3. Энкодер и дребезг

    Да. Только для гарантированной фильтрации дребезга, период прерываний надо подобрать раза в 64 меньше минимального периода изменений датчика. И если в течении 64 прерываний состояние датчика не изменилось, то можно говорить о достоверности состояния. В идеале чем период меньше - тем фильтрация лучше.
  4. Энкодер и дребезг

    Вы вполне можете завести одно таймерное прерывание, которое будет фильтровать дребезг и обновлять индикаторы. При каждом вызове обрабатывается один из индикаторов и определяется сигнал от датчика. Если для обновления индикатора период таймера слишком маленький, Вы можете организовать внутри прерывания счетчик, по достижении определенного значения которого и обрабатывать индикатор.
  5. Энкодер и дребезг

    А что за индикация используется? Ее можно посадить, допустим, и на прерывание таймера для датчика или использовать в основном цикле программы.
  6. Энкодер и дребезг

    Как раз программно эту проблему решить проще всего. Запустите таймерное прерывание с периодом раза в два меньше минимального периода датчика и опрашивайте в нем сигнал с датчика. Если в последовательных прерываниях считываются разные значения - то это является дребезгом.
  7. 1. Проверте, та ли частота генерится на чипе. 2. Поподробнее, что за USB-шный шнурок используете? Я сталкивался с тем что на некоторых преобразователях USB-RS232 реальная скорость передачи отличалась от устанавливаемой.
  8. ADC ATmega128

    Когда читается регистр данных АЦП, сначала читается ADCL а потом ADCH. В доке про это написано. Если делать наоборот - в одноканальном режиме все будет работать нормально, а в многоканальном начинаются проблемы.
×
×
  • Создать...