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

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

сделать программное прерывание от бесконечного поллинга ?

Отправлено MegaJohn (81.222.85.88) 30 июля 2010, г. 16:04
В ответ на: Чой та с ума схожу: мега88, очень загружен обмен по SPI - ~50 тыщ обращений в секунду. Spi prescaller = 4. Но через 20 - 60 мин зависаю на строке while( !( SPSR & ( 1 << SPIF ) ) ). Так сказал JTAG MK2. Чешу репу отправлено MegaJohn 30 июля 2010, г. 16:01



////////////////////////////////////////////////////////////////////////////////
// ×òåíèå 8 áèò
u8 spi_r8( void )
{
while( busy )
;

busy = true;

SPDR = 0;
#ifdef SPI_LIMITED_POOLING
register u8 t = 255;
#endif

#ifndef SIMULATOR_DEBUG
while( !( SPSR & ( 1 << SPIF ) ) )
{
#ifdef SPI_LIMITED_POOLING
if( !t-- )
break;
#endif
}

#else
#warning Âíèìàíèå! â ðåæèìå îòëàäêè îòêëþ÷åíî îæèäàíèå ôëàãà
#endif

busy = false;
return SPDR;
}



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

Ответы


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

Сообщение:

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

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

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

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