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

 
 
> Работа с системой событий Xmega32A4, Event System,PORTC, Timer/Counter 0|1
evsx1
сообщение Jun 25 2013, 09:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 1-11-10
Пользователь №: 60 586



Здравствуйте, возник вопрос по работе с системой событий в Xmega. Необходимо считать импульсы по 4 каналам, приходящие на PORTC, в контроллере можно считать по прерыванию всего по 2м пинам на порту, поэтому было решено под эти задачи использовать Таймер/Счетчик'и. Для этого настраиваю необходимые пины PORTC на вход, генерация события по спадающему фронту с передачей их таймеру счетчику. И вот тут вопрос: мне придется использовать также 4ре счетных канала для счета P TCC0&1 TCD0&1, просто на таймере 0 по PORTC мне это можно каким-нибудь образом сделать? Сейчас я выбираю четыре раздельных источника для каждого таймера.

Код
int CH1,CH2,CH3,CH4;
void CHANNEL_COUNT(void)
{  
  PORTC.DIR&=~0x78;
  //PORTC.DIRTGL=0x78;
  PORTC.PIN0CTRL = PORT_ISC_FALLING_gc; //обнаружение низкого уровня
  PORTC.PIN1CTRL = 0x03; //обнаружение низкого уровня
  EVSYS.CH0MUX = 0x66;   // передача  в первый мультемплексканал Count_CH1
  EVSYS.CH1MUX = 0x65;   // передача  в второй мультемплексканал Count_CH2
  EVSYS.CH2MUX = 0x64;   // передача  в третий мультемплексканал Count_CH3
  EVSYS.CH3MUX = 0x63;   // передача  в четвертый мультемплексканал Count_CH4
  EVSYS.CH1CTRL = 0x07; //
  EVSYS.CH2CTRL = 0x07;  //
  EVSYS.CH3CTRL = 0x07;  //максимальный цифровой фильтр на все каналы
  EVSYS.CH0CTRL = 0x07; //
  TCC0.PER = 0xFFFF;
  TCD0.PER = 0xFFFF;
  TCC1.PER = 0xFFFF;      // переполнение после полного заполнения 16бит
  TCD1.PER = 0xFFFF;
  TCD0.CTRLA = TC_CLKSEL_EVCH0_gc;    // CNT таймера Д0 содержит счет CH1
  TCC0.CTRLA = TC_CLKSEL_EVCH1_gc;    // CNT таймера C0 содержит счет CH2
  TCC1.CTRLA = TC_CLKSEL_EVCH2_gc;    // CNT таймера C1 содержит счет CH3
  TCD1.CTRLA = TC_CLKSEL_EVCH3_gc;    // CNT таймера Д1 содержит счет CH4
  
  CH1=TCD0.CNT;  
  CH2=TCD0.CNT;
  CH3=TCD0.CNT;      // запись значения
  CH4=TCD0.CNT;
  
}


Сообщение отредактировал evsx1 - Jun 25 2013, 09:53
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:52
Рейтинг@Mail.ru


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