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

 
 
> LPC1768 непонятное поведение
dpatrakov
сообщение Jan 27 2017, 19:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 20-05-06
Пользователь №: 17 293



Форумчане прошу помощи в поиске проблемы

Проблема в следующем, камень запущен на частоте 100 МГц тоесть инструкции должны выполняться за 10нс, дерганье ножкой показывает что примерно так и есть, но вот возникла задача генерить высокую частоту таймером, и больше 1 мегагерца не получилось, хотя по мануалу вход в прерывание занимает 12 тактов или 120 нс, путем тыка найдена инструкции которые выполняются не за 10нс а за целых 250.
Вот проблемная команда LPC_TIM0->MR0 += T0MR0->interval; ее выполнение занимает 500 нс, это не то что медленно, а вообще жесть.
в ассемблере это занимает всего 4 инструкции (загрузка адреса, чтение, сложение, выгрузка обратно)
в итоге прерывание даже пустого таймера выполняется за 750 нс плюс 120нс вход и 120 выход тоесть 1мкс.
750 получается из 1) операция проверки флага mr0 2) сброс флага 3) изменение mr0

Вторую проверку проводил так
Код
while (1)
{
f = 1-f;
if (f) PINSET;
else PINCLR;
LPC_TIM0->MR0 += T0MR0->interval;
}
итог период выполнения ~600 нс

Код
while (1)
{
f = 1-f;
if (f) PINSET;
else PINCLR;
//LPC_TIM0->MR0 += T0MR0->interval;
}
период выполнения ~85нс

ассемблере тесты различаются всего на 4 инструкции

еще тест
Код
while (1)
{
f = 1-f;
if (f) PINSET;
else PINCLR;
LPC_TIM0->MR0 = T0MR0->interval;
}
итог период выполнения ~300 нс

если рассуждать логически то включение ноги процессора это банальная операция записи в ячейку памяти соответствующую GPIO, а запись в регистр сравнения это такая же операция записи числа в ячеку памяти, но одна выполняется за 10 нс другая аж за 250
Встал в ступор куда копать не знаю

Сообщение отредактировал IgorKossak - Jan 27 2017, 20:51
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- dpatrakov   LPC1768 непонятное поведение   Jan 27 2017, 19:27
- - skripach   Цитата(dpatrakov @ Jan 27 2017, 22:27) Н...   Jan 27 2017, 20:25
|- - dpatrakov   Я это в душе понимаю, но как посмотреть? 250нс это...   Jan 27 2017, 20:41
|- - jcxz   Цитата(dpatrakov @ Jan 27 2017, 23:41) Я ...   Jan 28 2017, 07:43
|- - dpatrakov   Цитата(jcxz @ Jan 28 2017, 10:43) Смотрит...   Jan 28 2017, 08:39
|- - jcxz   Цитата(dpatrakov @ Jan 28 2017, 11:39) Та...   Jan 28 2017, 12:06
- - AVI-crak   Цитата(dpatrakov @ Jan 28 2017, 01:27) Вс...   Jan 28 2017, 13:12
|- - dpatrakov   Цитата(AVI-crak @ Jan 28 2017, 16:12...   Jan 28 2017, 17:10
|- - jcxz   Цитата(dpatrakov @ Jan 28 2017, 20:10) Ес...   Jan 28 2017, 17:43
|- - dpatrakov   Цитата(jcxz @ Jan 28 2017, 20:43) Где нап...   Jan 28 2017, 18:18
- - KRS   Если уж боретесь за наносекунды, пишите код оптима...   Jan 28 2017, 19:36
|- - dpatrakov   Цитата(KRS @ Jan 28 2017, 22:36) Если уж ...   Jan 28 2017, 20:18
|- - KRS   Цитата(dpatrakov @ Jan 28 2017, 23:18) И ...   Jan 30 2017, 18:42
|- - dpatrakov   Цитата(KRS @ Jan 30 2017, 21:42) в данном...   Feb 1 2017, 14:25
- - RabidRabbit   Цитата(dpatrakov @ Jan 27 2017, 22:27) Пр...   Jan 28 2017, 20:46
|- - dpatrakov   Цитата(RabidRabbit @ Jan 28 2017, 23:46) ...   Jan 28 2017, 20:58
|- - jcxz   Цитата(dpatrakov @ Jan 28 2017, 23:51) А ...   Jan 28 2017, 21:03
||- - dpatrakov   Цитата(jcxz @ Jan 28 2017, 23:59) Прям бе...   Jan 28 2017, 21:16
||- - jcxz   Цитата(dpatrakov @ Jan 29 2017, 00:16) Вы...   Jan 28 2017, 21:28
||- - jcxz   Цитата(dpatrakov @ Jan 29 2017, 00:16) 1 ...   Jan 28 2017, 21:35
||- - dpatrakov   Цитата(jcxz @ Jan 29 2017, 00:35) На этом...   Jan 28 2017, 21:43
||- - jcxz   Цитата(dpatrakov @ Jan 29 2017, 00:43) 20...   Jan 28 2017, 21:53
||- - dpatrakov   Цитата(jcxz @ Jan 29 2017, 00:53) Опять п...   Jan 28 2017, 22:59
||- - Dog Pawlowa   Цитата(dpatrakov @ Jan 29 2017, 01:59) ма...   Jan 29 2017, 06:57
||- - jcxz   Цитата(Dog Pawlowa @ Jan 29 2017, 09:57) ...   Jan 29 2017, 12:50
|- - Dog Pawlowa   Не могу похвастаться хорошим знанием ARM, но рассч...   Jan 28 2017, 21:18
|- - dpatrakov   Цитата(Dog Pawlowa @ Jan 29 2017, 00:18) ...   Jan 28 2017, 21:23
|- - Dog Pawlowa   Цитата(dpatrakov @ Jan 29 2017, 00:23) wi...   Jan 28 2017, 21:28
|- - dpatrakov   Цитата(Dog Pawlowa @ Jan 29 2017, 00:28) ...   Jan 28 2017, 21:35
- - dpatrakov   Вот думал тут, на шине где висит таймер, есть друг...   Jan 29 2017, 08:22


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

 


RSS Текстовая версия Сейчас: 12th August 2025 - 14:49
Рейтинг@Mail.ru


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