Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программирование PMC
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Bulat
Я пытался запрограммировать регистр PMC_PCK0 также, как и все остальные регистры PMC. Но если все регистры PMC описаны в структуре AT91PS_PMC, а также в структуре AT91PS_SYS, то регистры PMC_PCK0,1,2 ни там, ни там не описаны. И при компиляции выдается ошибка "Error[Pe136]: struct "_AT91S_PMC" has no field "PMC_PCK0" C:\MMS_2.cpp 47".
Ниже приведен кусок программы.

#include <stdio.h>
#include <ioat91sam7s256.h>
AT91PS_PMC pmc = AT91C_BASE_PMC;
void clock_ini()
{
pmc->PMC_PCK0=0xF;
}

Причем поле PMC_PCK0 я не неашел ни в одной структуре.
Как мне запрограммировать регистр PMC_PCK0?
Заранее благодарен.
kichkine
В той структуре есть массив PMC_PCKR[0]. У атмела не все названия регистров из даташита соответствуют идентификаторам в ихних файлах - заголовках (at91sam7s256.h).

Там же есть готовый указатель AT91C_PMC_PCKR. Не проверял, но надо понимать на рег. PMC_PCK0, остальные, должно быть +1 и +2.

А еще можно из datasheet взять адрес и вписать его в программу.
Сергей Борщ
Цитата(kichkine @ Mar 20 2007, 09:21) *
В той структуре есть массив PMC_PCKR[0]. У атмела не все названия регистров из даташита соответствуют идентификаторам в ихних файлах - заголовках (at91sam7s256.h).
угу.
Код
    // outputs: minimum
    AT91C_BASE_PMC->PMC_PCKR[0] = AT91C_PMC_CSS_SLOW_CLK | AT91C_PMC_PRES_CLK;        // Programmable clock output0
    AT91C_BASE_PMC->PMC_PCKR[1] = AT91C_PMC_CSS_SLOW_CLK | AT91C_PMC_PRES_CLK;        // Programmable clock output1
    AT91C_BASE_PMC->PMC_PCKR[2] = AT91C_PMC_CSS_SLOW_CLK | AT91C_PMC_PRES_CLK;        // Programmable clock output2
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.