Заголовок сообщения: Re: AVR: Синхронизация исполнения кода к значению таймера Т1
Добавлено: Вт сен 04, 2012 19:01:21
Так и симулировал. Брякпоинт в начале. брякпоинт в конце (NOP только дописал). Остановился на первом, обнулил счётчик тактов, запустил, после останова на втором брякпоинте смотрю количество тактов. В качестве девайса была выбрана мега16.
И, кстати, вначале программы у вас написано LDI R16, TCNT1L, а правильно наверное IN R16, TCNT1L
И, кстати, вначале программы у вас написано LDI R16, TCNT1L, а правильно наверное IN R16, TCNT1L
Ой.. ну да, конечно ! это я просто отлаживал и поставил LDI.. поправлю !
я в конце поставил sleep
И смотрел счетчик циклов.. а не PC... гм.. не может быть разницы при исполнении на меге16 и 32..
может быть в разные места смотрим ?
В принципе команд мало, так что даже вручную просчитать легко.. breq - 1 такт если условие не исполняется, и 2 такта если осуществляется переход по условию.. все остальные команды 1 такт..
скоро я этот код проверю в работе.. так что если будут еще правки то я напишу.
Заголовок сообщения: Re: AVR: Синхронизация исполнения кода к значению таймера Т1
Добавлено: Ср сен 05, 2012 07:38:35
На картинке я показал при R16=5. А при 4 счётчик равен 8, а при 3 - 9. То, что выше первого брейка, меня не интересует. Я проверял только критическую часть. Или вы невнимательно прочли мой пост с табличкой. А на картинке я просто показал, откуда у меня эти результаты
На картинке я показал при R16=5. А при 4 счётчик равен 8, а при 3 - 9. А на картинке я просто показал, откуда у меня эти результаты
Ну то что вы привели и является ПРАВИЛЬНОЙ работой кода !
еще раз напишу... если счетчик TCNT1=5 - значит мы уже потеряли 5 тактов на вход в процедуру.. прибавляем сюда полученные вами 7 и получаем 12 тактов ОТ МОМЕНТА ГЕНЕРАЦИИ ЗАПРОСА НА ПРЕРЫВАНИЕ... - именно это число (константа) мне важно..
если счетчик TCNT1=4 - значит мы потеряли 4 такта на вход в процедуру, прибавляем полученные вами 8 - и получаем 12 тактов ОТ того же МОМЕНТА ГЕНЕРАЦИИ ЗАПРОСА НА ПРЕРЫВАНЕ - заметьте - опять 12!! константа !!
и так далее...
Результат мы смотрим одинаково, я тоже на этот счетчик смотрел когда проверял код в симуляции...
Недостаток текущей разработки в синхронизации исполнения кода командой sleep - что делает невозможным использование аппаратных прерываний... поэтому буду внедрять разработанный код синхронизации..
p.s. кстати, а какие требования существуют для статей которые размещаются здесь ? где про это прочитать ?
Хм... Плохо ищите. Или английского не знаете? avrfreaks.net , форум, 2007 год.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения