Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Процессорные модули » SK-9G45-OEM
Тактовая частота
Sergey1212
Добавлено 17.04.2013 19:52 Редактировалось 18.04.2013 09:21
0
Сообщение: 1
Sergey1212
0

Пункты: 794
Регистрация: 19.03.2013
Подскажите как посмотреть/измерить текущее реальное значение тактовой частоты?

Пробовал инкременты подсчитывать получилось ~5340000 i++ за секунду в примере getting-started-project-at91sam9m10-ekes-at91sam9m10-sram.
В майне все закоментил оставив вызов ConfigureTc и следом цикл с инкрементом.
В ConfigureTc поправил с 4 Гц на 1 Гц
В TC0_IrqHandler сделал принтф i и следом i=0.

Отсюда возникло еще несколько вопросов
Вывод того i в терминале колебался от 5300000 до 5400000, а иногда вместо ожидаемого значения в 5,3 млн. получалось 10,6 млн. будто i=0 не выполнилось или частота вдруг увеличилась в 2 раза.
Разве не должно получаться одно и тоже число +-1?
Где можно посмотреть сколько тактов занимает i++, вывод бита на порт GPIO и др. у данного проца?

Поправил цифирки на 0 ошибся
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.04.2013 23:53 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Где можно посмотреть сколько тактов занимает i++, вывод бита на порт GPIO и др. у данного проца?

в доке на АРМ смотрите наименование архитектуры, потом гуглите описание команд этой архитектуры..
http://en.wikipedia.org/wiki/ARM9
в конце страницы..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Sergey1212
Добавлено 18.04.2013 09:27 Редактировалось 18.04.2013 09:36 Сообщение: 3
Sergey1212
0

Пункты: 794
Регистрация: 19.03.2013
Что то не получается найти ничего подобного.

Почему i=0 не всегда выполняется?

Вот код:
Код

void TC0_IrqHandler(void)
{
volatile unsigned int dummy;
// Clear status bit to acknowledge interrupt
dummy = AT91C_BASE_TC0->TC_SR;
printf(" %d ", i);
i=0;
}

void ConfigureTc(void)
{
unsigned int div;
unsigned int tcclks;

// Enable peripheral clock
AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_TC0;

// Configure TC for a 4Hz frequency and trigger on RC compare
TC_FindMckDivisor(1, BOARD_MCK, &div, &tcclks);
TC_Configure(AT91C_BASE_TC0, tcclks | AT91C_TC_CPCTRG);
AT91C_BASE_TC0->TC_RC = (BOARD_MCK / div) / 1; // timerFreq / desiredFreq

// Configure and enable interrupt on RC compare
IRQ_ConfigureIT(AT91C_ID_TC0, 0, TC0_IrqHandler);
AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS;
IRQ_EnableIT(AT91C_ID_TC0);

// Start the counter if LED is enabled.
if (pLedStates[1]) {

TC_Start(AT91C_BASE_TC0);
}
}

int main(void)
{
// DBGU output configuration
TRACE_CONFIGURE(DBGU_STANDARD, 115200, BOARD_MCK);
printf("-- Getting Started Project %s --\n\r", SOFTPACK_VERSION);
printf("-- %s\n\r", BOARD_NAME);
printf("-- Compiled: %s %s --\n\r", __DATE__, __TIME__);

ConfigureTc();

// Main loop
while (1) {
i++;
}
}

А вот результат:
Код

-- Getting Started Project 1.9-rc1 --
-- AT91SAM9M10-EKES
-- Compiled: Apr 18 2013 09:16:13 --
-I- configure pit.
5619031 11161938 16704328 5542368 5542906 11085840 16628208 5542395 5542933 11085846 5542403 5542941 5542920 11085851 16628233 5542392 5542947 5542909 5542936 5542898 5542925 5542935 5542914 5542933 5542895 5542922


И при таком результате если предположить что инкремент занимает даже 6 тактов то получается ~33Мгц
Спуститься к концу Подняться к началу
Персональная информация
Sergey1212
Добавлено 18.04.2013 09:43 Редактировалось 18.04.2013 09:45 Сообщение: 4
Sergey1212
0

Пункты: 794
Регистрация: 19.03.2013
Заменил i=0 на
while (i > 0)
{
i=0;
}
Получилось вот что
Код
-- Getting Started Project 1.9-rc1 --
-- AT91SAM9M10-EKES
-- Compiled: Apr 18 2013 09:35:14 --
5407473 10736803 16065643 21394453 26723280 32052124 5328814 5329338 5329354 5329371 5329341 5329357 10658686 5328838 5329361 5329332 5329349 5329365 5329335 5329352 5329369 5329339 10658695

Я так понимаю надо ее как-то синхронизировать ну это ладно
А почему число разное получаются и так мало?
Спуститься к концу Подняться к началу
Персональная информация
Sergey1212
Добавлено 20.04.2013 22:07 Сообщение: 5
Sergey1212
0

Пункты: 794
Регистрация: 19.03.2013
Инициализация там никакая в этих примерах(
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-9G45-OEM