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

    

Делитель на пинах прерывания?

при таком тактировании у вас команды выполняются за 0.5мкс, в среднем, т.е. вы должны укладываться, примерно, в 100 команд на обработку каждого изменения входного сигнала. Можно применить оптимизацию по скорости - это сократит код.

 

Т.е. её задача делить входной сигнал на заданное число? Тогда, может поискать просто делитель в интегральном исполнении, наверняка есть такие... тот уж точно глючить не будет, да и с потреблением наверняка будет лучше у него..

 

Нет, это не простой делитель. Основной МК программирует таймер на ATtiny13 (подстройка синхронизации) и «засыпает». При наступлении события от таймера ATtiny13 основной МК «просыпается», отрабатывает положенное и т.д. по циклу. С начала я хотел применить специализированный таймер, но подходящего не нашёл. Нужно работа с частотой 2 – 10 Гц с разрешением не хуже 5 мкс. и с потреблением менее 1 мА.

 

По временам я всё понял, буду считать. Возможно на время обмена уменьшу пред\делитель генератора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А зачем внешнее тактирование - от внутреннего генератора нельзя сделать? Т.е. зачем на Тини13 внешние счетные импульсы подавать, не проще ли использовать внутренний клок. Кстати, не знаю как в Тини, а в Мегах есть асинхронный таймер, на который можно подавать внешние счетные импульсы - все будет тогда работать аппаратно...

 

Посмотрел даташит на Тини13 - у её таймера есть возможность внешнего тактирования.

 

При наступлении события от таймера ATtiny13 основной МК «просыпается»
если задача просто считать импульсы - зачем тогда определять прерывание по спаду или по нарастанию? Использовать INT0 по спаду или нарастанию или внешний клок таймера, или вообще внутнренний клок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А зачем внешнее тактирование - от внутреннего генератора нельзя сделать? Т.е. зачем на Тини13 внешние счетные импульсы подавать, не проще ли использовать внутренний клок. Кстати, не знаю как в Тини, а в Мегах есть асинхронный таймер, на который можно подавать внешние счетные импульсы - все будет тогда работать аппаратно...

 

Посмотрел даташит на Тини13 - у её таймера есть возможность внешнего тактирования.

 

если задача просто считать импульсы - зачем тогда определять прерывание по спаду или по нарастанию? Использовать INT0 по спаду или нарастанию или внешний клок таймера, или вообще внутнренний клок.

 

Нет, не так. ATtiny13 работает сам по себе от внутренней RC цепи. А импульсы это 3-х проводной (или 2-х проводной) интерфейс для управления таймером, основной МК или OCR0A устанавливает или дополнительный программный делитель для увеличения периода выходного сигнала. Аппаратный предделитель таймера использовать не могу, точность снижается.

С асинхронным таймером не получается по причине той же низкой точности.

 

INT0 использую только по нарастанию, для PCINT0_vect вариантов нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У нас подобная вещь на Тини12 сделана... ватчдог для пром ПК собственной разработки... интерфейс I2C, управляемое время сброса, хранение серийника в еепроме тини, еще пра фич, прога на асме написана, правда я думаю нет таких требований по точности отсчета времени сброса... Дерзайте - всё должно получиться...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поднимаю старую ему...

 

сейчас работаю с прерываниями PCINT на tiny461.

смотрю в протеусе.

 

ставлю маску, не ставлю, прерывания идут со всех ног...

 

наверное глюк протеуса.

самой железки пока нет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация