|
Как оценить время в Keil, Не могу посчитать количество тактов |
|
|
|
 |
Ответов
|
Apr 6 2010, 15:59
|

Местный
  
Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367

|
Продолжаю терзать at91sam7s256. Привожу код который я написал для работы с SPI. Самое удивительное (для меня) и чему я не могу найти объяснения - это то, что код этот нормально работал (писал на SD-карточку), а теперь перестал работать. Код ///////////////////////////////////////////////////////////////////////////// void CONFIG_SPI () { pSPI -> SPI_MR = AT91C_SPI_MSTR | AT91C_SPI_MODFDIS | (AT91C_SPI_PCS & (0x0D << 16)); //Master mode, use freq divider, select 1 chanel CS. pSPI -> SPI_CSR[1] = AT91C_SPI_NCPHA | AT91C_SPI_BITS_8 | AT91C_SPI_CSAAT | (AT91C_SPI_SCBR & (SCBR << 8)); // clock idle low, data valid on rising edge, 8-bit data pSPI -> SPI_CR = AT91C_SPI_SPIEN | AT91C_SPI_LASTXFER; } ///////////////////////////////////////////////////////////////////////////////////// char SPI (char DATA) { pSPI -> SPI_TDR = DATA; while (!(pSPI -> SPI_SR & AT91C_SPI_TDRE)); /* Wait for Empty Tx Buffer */ while (!(pSPI -> SPI_SR & AT91C_SPI_RDRF)); return (pSPI -> SPI_RDR & 0xFF); } //////////////////////////////////////////////////////////////////////////////////// Просьба помочь найти ошибку.
|
|
|
|
|
Apr 6 2010, 16:26
|

Местный
  
Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367

|
Цитата(aaarrr @ Apr 6 2010, 19:08)  Предлагаете угадать, как именно он "перестал работать"? Да нет же. Может в коде какая-то ошибка... Отладчиком дохожу до условия - Код while (!(pSPI -> SPI_SR & AT91C_SPI_TDRE)); /* Wait for Empty Tx Buffer */ - и зависаю здесь, не могу дождаться этого флага. Линия CS в низкий уровень после загрузки SPI_TDR тоже не переводится. Такое впечатление, что SPI вообще не включен.
|
|
|
|
Сообщений в этой теме
Nikitoc Как оценить время в Keil Mar 16 2010, 14:30 aaarrr Цитата(Nikitoc @ Mar 16 2010, 17:30) Посо... Mar 16 2010, 15:09 Nikitoc Цитата(aaarrr @ Mar 16 2010, 19:09) Debug... Mar 16 2010, 18:48  aaarrr Цитата(Nikitoc @ Mar 16 2010, 21:48) А ес... Mar 16 2010, 19:31   Nikitoc Цитата(aaarrr @ Mar 16 2010, 22:31) И бли... Mar 16 2010, 20:24 aaarrr Поподробнее можно посмотреть в даташите. Если крат... Mar 16 2010, 20:30 Nikitoc Угу, ясненько. И если можно последний моментик: Вы... Mar 16 2010, 20:39 aaarrr Периферия находится на "медленной" шине ... Mar 16 2010, 20:46 Nikitoc Цитата(aaarrr @ Mar 16 2010, 23:46) Периф... Mar 16 2010, 20:53 Nikitoc Типа отчет, о том что получилось. Тестовая програ... Mar 19 2010, 12:23 aaarrr Цитата(Nikitoc @ Mar 19 2010, 15:23) Мне ... Mar 19 2010, 13:24  Nikitoc Цитата(aaarrr @ Mar 19 2010, 17:24) Ошиба... Mar 19 2010, 13:47   aaarrr Цитата(Nikitoc @ Mar 19 2010, 16:47) А не... Mar 19 2010, 14:14    Nikitoc Цитата(aaarrr @ Mar 19 2010, 18:14) В дат... Mar 19 2010, 14:27     RabidRabbit Цитата(Nikitoc @ Mar 19 2010, 17:27) Я зд... Mar 19 2010, 20:29     aaarrr Цитата(Nikitoc @ Mar 19 2010, 17:27) КодA... Mar 19 2010, 20:37      Nikitoc Огромное спасибо за пояснения уважаемым гуру. Я, в... Mar 19 2010, 22:45       aaarrr Цитата(Nikitoc @ Mar 20 2010, 01:45) Врод... Mar 19 2010, 22:51   defunct Цитата(Nikitoc @ Mar 19 2010, 15:47) А не... Mar 21 2010, 00:23 toweroff ЦитатаAT91C_BASE_PIOA -> PIO_SODR = AT91C_BASE_... Mar 19 2010, 20:04 Nikitoc Хм. Ну ладно, но нафига тогда эта петрушка со смещ... Mar 19 2010, 23:11 aaarrr Потому что в 32 бита команды не получится упихать ... Mar 19 2010, 23:15 Nikitoc Да я вообще и пытаюсь это делать. Но блин, тяжело ... Mar 19 2010, 23:27 aaarrr Цитата(Nikitoc @ Mar 20 2010, 02:27) Да я... Mar 19 2010, 23:39 Nikitoc Пасибки. Попробую дочитать хотя бы до половины ... Mar 20 2010, 09:49 aaarrr По такой логике LDR и STR должны занимать одинаков... Mar 21 2010, 01:11 defunct Цитата(aaarrr @ Mar 21 2010, 03:11) По та... Mar 21 2010, 01:34  aaarrr Цитата(defunct @ Mar 21 2010, 04:34) ...А... Mar 21 2010, 01:47   defunct Цитата(aaarrr @ Mar 21 2010, 03:47) И мож... Mar 21 2010, 02:09    Nikitoc Цитата(aaarrr @ Apr 6 2010, 19:39) А он в... Apr 6 2010, 16:44 aaarrr pP_M_C чему равен? И зачем вообще использовать эти... Apr 6 2010, 17:12 Nikitoc ЦитатаpP_M_C чему равен? И зачем вообще использова... Apr 6 2010, 17:27 aaarrr Для write only есть соответствующие status-регистр... Apr 6 2010, 17:29 Nikitoc Цитата(aaarrr @ Apr 6 2010, 20:29) Провер... Apr 6 2010, 17:33 Nikitoc Вот здесь http://electronix.ru/forum/index.php?sho... Apr 6 2010, 19:02 aaarrr Цитата(Nikitoc @ Apr 6 2010, 23:02) ...я ... Apr 6 2010, 19:21  Nikitoc Проблема решилась. Оказалось что SD-шка мертвая. П... Apr 7 2010, 09:52
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|