Dot 0 30 ноября, 2013 Опубликовано 30 ноября, 2013 · Жалоба Железо разведено для использования входа у канала 2 таймера 2. Тактовая частота таймера -- системная по-максимуму. Хотелось бы, чтобы таймер был 32-битным, т.е. к нему надо как-то приляпать 2-ой таймер. Не пойму, как это можно сделать. Получается (пока чисто теретически), что с ведущего таймера можно подать либо счетные импульсы, либо сигнал захвата, но никак ни оба сигнала одновременно. Или здесь есть какой-то трюк? Пока в голову приходит только брать сигнал захвата с ведущего таймера, а тактовую частоту для зависимого брать системную, но поделенную предделителем (у которого коэффициент деления такой же, как и у 1-го таймера). И оба таймера стартовать синхронно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nx6310 0 30 ноября, 2013 Опубликовано 30 ноября, 2013 · Жалоба Можно вроде сигнал переполнения ведущего таймера завести на вход ведомого таймера. Первый таймер будет выступать как делитель для второго таймера. об этом можно прочитать на странице 350 RM0008 Reference manual разделы: 14.3.15 Timer synchronization Using one timer as prescaler for the another. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dot 0 30 ноября, 2013 Опубликовано 30 ноября, 2013 · Жалоба Можно-то можно, да только модуль для связи TRG0->TRGI у таймера только один. Как тогда заводить еще и сигнал "capture"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 30 ноября, 2013 Опубликовано 30 ноября, 2013 · Жалоба Есть вариант обойтись без второго таймера. Достаточно успеть обработать прерывание (прочитать CAP REG) до того как таймер успеет пройти целый "круг" относительно точки захвата. Для работы понадобится активировать прерывание (MAT) по переполнению таймера (65535->0) и там программно инкрементить старшие/мнимые 16 бит где-то в переменной. Плюс в прерывании CAP понадобятся несколько сравнений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nx6310 0 1 декабря, 2013 Опубликовано 1 декабря, 2013 · Жалоба Вам нужен захват при 32-х разрядном таймере? Попробуйте сделать первый таймер ведомым, а тактировать его вторым. Т.е. Счетные импульсы по переполнению ведущего таймера будут подаваться на вход ведомого таймера в котором настроен модуль захвата. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dot 0 2 декабря, 2013 Опубликовано 2 декабря, 2013 · Жалоба Есть вариант обойтись без второго таймера. Достаточно успеть обработать прерывание (прочитать CAP REG) до того как таймер успеет пройти целый "круг" относительно точки захвата. Для работы понадобится активировать прерывание (MAT) по переполнению таймера (65535->0) и там программно инкрементить старшие/мнимые 16 бит где-то в переменной. Плюс в прерывании CAP понадобятся несколько сравнений. Да, на крайняк можно сделать и так. Даже скорее всего для моей задачи именно так и надо делать, поскольку темп обоих прерываний будет порядка 400 в сек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться