Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Ответ: Пример полностью рабочей процедуры инициализации(у меня заработала)

Отправлено Ильдар 29 марта 2007 г. 18:56
В ответ на: SPI, AT91SAM7S и IAR отправлено <font color=gray>Ильдар</font> 29 марта 2007 г. 14:01

static void init_SPI3(void)
{
// Configure SPI PIOs
AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA, AT91C_PA11_NPCS0 | AT91C_PA12_MISO | AT91C_PA13_MOSI | AT91C_PA14_SPCK, 0);
// Configure PMC by enabling SPI clock
// AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << (AT91C_ID_SPI));
AT91F_SPI_CfgPMC ();
AT91F_SPI_Reset(AT91C_BASE_SPI);
AT91F_SPI_CfgMode(AT91C_BASE_SPI, AT91C_SPI_MSTR | AT91C_SPI_PS_FIXED | AT91C_SPI_MODFDIS | ((0x10 << 24) & AT91C_SPI_DLYBCS));
AT91F_SPI_CfgPCS(AT91C_BASE_SPI, 0);
AT91F_SPI_CfgCs(AT91C_BASE_SPI, 0, AT91C_SPI_CPOL | AT91C_SPI_BITS_8 | ((0x40 << 8) & AT91C_SPI_SCBR) | //Serial Clock Baud Rate
(AT91C_SPI_DLYBS & (128 << 16)) |
((0x2 << 24) & AT91C_SPI_DLYBCT)); //Delay Between Consecutive Transfers
AT91F_SPI_Enable(AT91C_BASE_SPI);
}

//посылка байта
static unsigned char spiSendByte(unsigned char dat)
{
AT91PS_SPI pSPI = AT91C_BASE_SPI;

while( !( pSPI->SPI_SR & AT91C_SPI_TDRE ) ); // transfer compl. wait
pSPI->SPI_TDR = dat;

//while( !( pSPI->SPI_SR & AT91C_SPI_RDRF ) ); // wait for char
return (unsigned char)( pSPI->SPI_RDR ); // it's important to read RDR here!
}

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите 6 на два:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru