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

 
 
> Считывание регистров, в контролллере LPC2478
argentum
сообщение Jul 12 2010, 11:35
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 26-04-09
Из: Москва
Пользователь №: 48 283



Скажите, пробовал кто-нибудь считывать регистры T0TC - T3TC у LPC2478?
Я всё время получаю нули!!!
А хотелось бы получить всё же истинное содержаение регистров.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
esaulenka
сообщение Jul 13 2010, 07:25
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



На 2368 всё работает, как ни странно.

В какой момент считываете?
Таймер в это время работает? Запуск что-то не наблюдаю...


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jul 13 2010, 07:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(esaulenka @ Jul 13 2010, 11:25) *
Запуск что-то не наблюдаю...

во-во...
T0TCR = 1; //-- Timer 0 - run
где?
Go to the top of the page
 
+Quote Post
argentum
сообщение Jul 13 2010, 07:57
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 26-04-09
Из: Москва
Пользователь №: 48 283



Прошу прощения ещё раз.
Запуск происходт в функции timer_enable сразу после инициализации. Драйвер вот:
CODE

/******************************************************************************
** Function name: enable_timer
**
** Descriptions: Enable timer
**
** parameters: timer number: 0 or 1
** Returned value: None
**
******************************************************************************/
void timer_enable(BYTE timer_num)
{
if ( timer_num == 0 )
{
T0TCR = 1;
}
else if ( timer_num == 1 )
{
T1TCR = 1;
}
else if ( timer_num == 2 )
{
T2TCR = 1;
}
else if ( timer_num == 3 )
{
T3TCR = 1;
}
return;
}


Цитата(esaulenka @ Jul 13 2010, 11:25) *
В какой момент считываете?


Считывается в while...


Цитата(toweroff @ Jul 13 2010, 11:23) *
[code] //--- Timer 0 - interrupt 10 ms
посмотрите, как там у Вас с частотой на таймер, вообще стартап. В моем случае 72/4=18, отсюда T0MR0 = 18000 * 10 для 10мс
и опять же - в каком месте вызывается чтение? может, оно так получается, что вызываете как раз в состоянии счетчика 0 laughing.gif

Прерывания-то происходят, а считать ничего не удаётся.
Так как считывание происходит в цикле while(1), то попадать всегда в T0TC = 0, кажется невероятным


Сообщение отредактировал argentum - Jul 13 2010, 07:53
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 19:55
Рейтинг@Mail.ru


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