реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> AT91SAM7Sxx. Таймер в сapture мode, Синус vs меандр.
KAlex
сообщение Sep 27 2007, 11:52
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



// Инициализация TC1
AT91C_BASE_TCB->TCB_BMR = 0;
AT91C_BASE_PMC -> PMC_PCER = (1 << AT91C_ID_TC1);
AT91C_BASE_TC1 -> TC_CCR = 1 << 1;//Disable clock [TC_CCR\CLKDIS {p366}] =1
AT91C_BASE_TC1 -> TC_IDR = 0x000000FF;//Disable all interrupts[TC_IDR {p379}]
dummy = AT91C_BASE_TC1->TC_SR; //Clear all status by read [TC_SR]
dummy = dummy;//Suppress warning variable "dummy" was set but never used
AT91C_BASE_TC1->TC_CMR = AT91C_TC_CLKS_XC1;
AT91C_BASE_TC1 -> TC_CCR = AT91C_TC_CLKEN | AT91C_TC_SWTRG;//Enable clock & Start timer
//
Далее раз в секунду считываю количество импульсов и обнуляю счетчик.
С меандром все нормально работает, но как только подается синус начинается всякая дребедень.
Что я не учел и как с этим бороться? Сделать из синуса->меандр не предлагать.
Go to the top of the page
 
+Quote Post
Puzan
сообщение Sep 27 2007, 12:33
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 16-12-05
Пользователь №: 12 295



Поставь триггер Шмитта.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 27 2007, 12:37
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(KAlex @ Sep 27 2007, 15:52) *
Что я не учел и как с этим бороться?

При подаче синусоиды возникают многократные переходы на медленном фронте.

Цитата(KAlex @ Sep 27 2007, 15:52) *
Сделать из синуса->меандр не предлагать.

Тем не менее, это единственный выход. Поставьте триггер Шмитта на входе.
Go to the top of the page
 
+Quote Post
KAlex
сообщение Sep 27 2007, 12:48
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Цитата(aaarrr @ Sep 27 2007, 16:37) *
Тем не менее, это единственный выход. Поставьте триггер Шмитта на входе.

Этого я и ожидал.
Дело в том, что платы уже готовы и городить что-то навесным монтажем не очень хочется.
Go to the top of the page
 
+Quote Post
AlexBoy
сообщение Sep 27 2007, 13:36
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Цитата(KAlex @ Sep 27 2007, 15:48) *
Этого я и ожидал.
Дело в том, что платы уже готовы и городить что-то навесным монтажем не очень хочется.

Попробуйте включить фильтр на входе (PIO_IFER).
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 27 2007, 13:50
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Фильтр на входе не распространяется на периферию, только на PIO.
Go to the top of the page
 
+Quote Post
AlexBoy
сообщение Sep 27 2007, 14:15
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Цитата(aaarrr @ Sep 27 2007, 16:50) *
Фильтр на входе не распространяется на периферию, только на PIO.

Точно. Можно считать импульсы без таймера, через edge detector, смотря какая частота.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016