[an error occurred while processing this directive]
нате(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено IV 06 июня 2006 г. 16:59
В ответ на: Не подсккажите где можно скачать примеры работы с SPI на at91sam7s256 отправлено <font color=gray>12345</font> 06 июня 2006 г. 10:51


//---------------------------------------------------------------------
void initSPI (void)
{
AT91F_PIO_CfgPeriph(
AT91C_BASE_PIOA, // PIO controller base address
((unsigned int) AT91C_PA13_MOSI ) |
((unsigned int) AT91C_PA14_SPCK ) |
((unsigned int) AT91C_PA11_NPCS0 ) |
((unsigned int) AT91C_PA12_MISO ),0); // Peripheral A

AT91F_SPI_CfgPMC ();


AT91C_BASE_SPI->SPI_CR = 0x81; //SPI Enable, Sowtware reset
AT91C_BASE_SPI->SPI_CR = 0x01; //SPI Enable


AT91C_BASE_SPI->SPI_MR = 0xE0011; //Master mode, fixed select, disable decoder, FDIV=0 (MCK), PCS=1110
AT91C_BASE_SPI->SPI_CSR[0] = 0x4A02; //8bit, CPOL=0, ClockPhase=1, SCLK = 200kHz

AT91C_BASE_PDC_SPI->PDC_PTCR = AT91C_PDC_TXTEN | AT91C_PDC_RXTEN;
AT91C_BASE_SPI->SPI_PTCR = AT91C_PDC_TXTEN | AT91C_PDC_RXTEN;
}

unsigned char spiSendByte(const unsigned char data)
{
// char str[10];
unsigned int spib;

// sprintf(str,"->%x",data);
// AT91F_DBGU_Printk(str);
while((AT91C_BASE_SPI->SPI_SR & AT91C_SPI_TDRE) == 0); // Wait for the transfer to complete
AT91C_BASE_SPI->SPI_TDR = (data & 0xFFFF); // Send the data

while((AT91C_BASE_SPI->SPI_SR & AT91C_SPI_RDRF) == 0); // Wait until the character can be sent
spib = ((AT91C_BASE_SPI->SPI_RDR) & 0xFFFF); // Get the data received
// sprintf(str,"<-%x",spib);
// AT91F_DBGU_Printk(str);
// AT91F_DBGU_Printk("\r\n");
return spib;
}


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru