Jump to content

    
Sign in to follow this  
Oleg_IT

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

Recommended Posts

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


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

 

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

 

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

 

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

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

 

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this