Свежие обсуждения
Микроконтроллеры

Работа таймеров в AVR

1 3

Конкретно в ATMEGA1280 в части использования битов FC0A0, FC0A1 в регистре TCCR0B

Как меняется режим работы таймера WGM2=0, WGM1=1, WGM0=0 ?

Реверсируется ли работа таймера в режимах COM0B1=1, COM0B0=0 или COM0B1=1, COM0B0=1

 

1. Таких бит FC0A0, FC0A1 в регистре TCCR0B нет, есть FОC0A, FОC1A.

2. WGM=010 это режим СТС.

3. Декремент таймера возможен только в ШИМ-режимах, да и то не во всех. ВладимирЦ, вы неправильно понимаете смысл режимов, задаваемых СОМ0В.

 

А эти биты должны самоочищаться после записи, как я понимаю.

 

Конкретно какие биты?

 

Да ужо разобрался вроде. Теперь другая задача:

Есть некоторое количество событий инициализируемых соответствующими изменениями состояния входов (24 всего) надо ровно через хх милисекунд после события изменить состояние некоторого выхода события асинхронны, ведичина задержки должна отрабатываться +/- несколько сот тактов. Процессор загружен также бдугими задачами. оЗУ занято на 100%, стек использовать нельзя.

 

Не в Озу 256 байт все-же удается выделить.

 

Кажется, это называется -прерывание.

 

Прерывание только с отдельных выводов возможно не со всех, на всех не хватает. Проблема как организовать столько таймеров ?

 

Организуйте один, по его прерыванию инкрементируйте переменную и сравнивайте ее с остальными "таймерами"
Или возьмите другой МК.

 

Самый "толстый" из 8ми разрядных ATMEL - ATMEGA1280 далее только совсем другие по структуре 32 разрядные, я их не сдюжу.

Ну - а события - то асинхронны как отсчитать время для каждого ?