Ксения (05.08.2013 02:56 - 03:14, просмотров: 86) ответил rezident на Лень пересматривать все даташиты подряд, не могли бы вы указать на конкретные кристаллы xmega с такими свойствами? Могут ли эти "32-х разрядные" таймеры capture-ть 32-х разрядные значения? Можно в них загружать 32-х разрядные значения для задания
Во всех случаях смотрите даташит на ATxmega128A1(U). Она хоть и самая старая по возрасту, но зато всего в ней по максимуму, а все прочие, как правило облегченные. 32-разрядного таймера, так такового, там нет, но можно "соединять" таймеры тем, что оправлять событие переполнения младшего таймера не на прерывание, а на канал контроллера событий. А старшему таймеру установить этот же канал контроллера событий в качестве тактового сигнала на счет.
Поскольку у ATxmega128A1 таймеров и каналов событий по 8 штук каждого, то ничто не мешает соединить хоть все таймеры в один длинный 64-разрядный таймер, если это так сильно надо. Сам же канал контроллера событий это просто отдельная шина, на которую одни периферийные устройста могут выдавать сигналы, а другие их использовать. Контроллер событий лишь производит подключения/откючения от канала/шины, но сам передачу сигнала не курирует - тот происходит чисто электрически между периферийными устройствами, присоединенных к одной шине.
Этим же способом можно сделать, чтобы таймер дергал ножкой. Для этого сигнал его переполнения выводят в канал, а нужной ножке нужного порта велят этого канала слушаться. После чего ногодрыг будет происходить чисто аппаратно, без участия процессора и без выполнения каких либо команд.
Еще одно применение. Положим, что мне нужно, чтобы моргал светодиод, подключенный к пину порта. Это можно сделать без прерываний, если сигнал переполнения или захвата таймера отправить на канал, а светодиодному пину порта дать указание от этого канала "тогглиться". Вот он и станет тогда свтодиод моргать сам, без отвлечения процессора от текущих дел.