|
SPI+DMA, приём данных |
|
|
|
Aug 14 2012, 13:08
|
Местный
  
Группа: Участник
Сообщений: 408
Регистрация: 28-05-12
Пользователь №: 72 052

|
Камень AT91SAMXE512 Есть пример из библиотеки для чтения данных из SPI через DMA CODE //------------------------------------------------------------------------------ /// Reads data from a SPI peripheral until the provided buffer is filled. This /// method does NOT need to be called after SPI_Write or SPI_WriteBuffer. /// \param spi Pointer to an AT91S_SPI instance. /// \param buffer Data buffer to store incoming bytes. /// \param length Length in bytes of the data buffer. //------------------------------------------------------------------------------ unsigned char SPI_ReadBuffer(AT91S_SPI *spi, void *buffer, unsigned int length) { #if !defined(CHIP_SPI_DMA) // Check if the first bank is free if (spi->SPI_RCR == 0) {
spi->SPI_RPR = (unsigned int) buffer; spi->SPI_RCR = length; spi->SPI_PTCR = AT91C_PDC_RXTEN; return 1; } // Check if second bank is free else if (spi->SPI_RNCR == 0) {
spi->SPI_RNPR = (unsigned int) buffer; spi->SPI_RNCR = length; return 1; } #endif // No free bank return 0; } я всегда думал что если что-то нужно получить из SPI, то что-то нужно отправить, а тут что-то непонятное. Как применить эту функцию для получения данных?
|
|
|
|
|
 |
Ответов
|
Aug 15 2012, 07:11
|
Местный
  
Группа: Участник
Сообщений: 408
Регистрация: 28-05-12
Пользователь №: 72 052

|
Цитата(_Pasha @ Aug 14 2012, 20:45)  Если еще задать своп TPR <-> TNPR буфер "худеет" вдвое а как это сделать? можно подробнее. и ещё, если хочу задать массив в ROM, достатачно ли объявить массив как const char?(для MSP430 делал именно так) для sasamy: мне нужен мастер, но спасибо за замечение, думаю пригодится в будущем.
Сообщение отредактировал Dubov - Aug 15 2012, 07:15
|
|
|
|
Сообщений в этой теме
Dubov SPI+DMA Aug 14 2012, 13:08 aaarrr Цитата(Dubov @ Aug 14 2012, 17:08) я всег... Aug 14 2012, 13:14 Dubov Цитата(aaarrr @ Aug 14 2012, 16:14) Совер... Aug 14 2012, 14:11  _Pasha Цитата(Dubov @ Aug 14 2012, 17:11) Но поч... Aug 14 2012, 14:50 _Pasha ChanFAT & Martin Thomas
тут нормальный пример,... Aug 14 2012, 13:29 aaarrr Цитата(_Pasha @ Aug 14 2012, 17:29) Пытал... Aug 14 2012, 14:16 Dubov Цитата(aaarrr @ Aug 14 2012, 17:16) Код т... Aug 14 2012, 14:31 aaarrr Передача может осуществляться любым способом. Прог... Aug 14 2012, 14:33 Dubov Цитата(aaarrr @ Aug 14 2012, 17:33) Перед... Aug 14 2012, 14:39  aaarrr Цитата(Dubov @ Aug 14 2012, 18:39) А как ... Aug 14 2012, 15:32   Dubov просто следовал совету:
Цитата(aaarrr @ Aug 1... Aug 15 2012, 12:28 Dubov Тогда проще использовать это:
CODE//-------------... Aug 14 2012, 15:45 aaarrr Цитата(Dubov @ Aug 14 2012, 19:45) Тогда ... Aug 14 2012, 16:18 aaarrr Цитата(Dubov @ Aug 14 2012, 21:20) А заче... Aug 14 2012, 17:24 sasamy Цитата(Dubov @ Aug 14 2012, 17:08) Камень... Aug 14 2012, 18:27 Dubov Всё, кажется разобрался. Функция чтения выглядит т... Aug 15 2012, 11:39 Lotor Цитатаwhile(! (*AT91C_SPI_SR & AT91C_SPI_E... Aug 15 2012, 12:10
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|