Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.11.2014, 11:09   #11
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Ускоряем работу Arduino

Вот вырезал из библиотеки фунуфию чтения и отправки данных
PHP код:
uint8_t ReadSPI(void
{
    while(!(
SPSR & (1<<SPIF)));
    return 
SPDR;
}

void SendSPI(uint8_t SPI_data
{
  
SPDR SPI_data;
  while(!(
SPSR & (1<<SPIF)));            

Там же есть функция отправки данных, как раз для тебя на ASM-е
Вот этот код реально работает быстрее, но
я его закоментирова, так как не все устройства успевают переходить в режим готовности

PHP код:
    __asm__ volatile
             
(
             
".spi_not_ready: out %[spdr], %[spi_data]"    "\n\t" //отправляем пользовательские данные в SPI
             
"in __tmp_reg__,%[spsr]"                "\n\t"    //Читаем регистр SPSR
            
"sbrs __tmp_reg__, %[spif]"                "\n\t"    //и проверяем флаг SPIF
            
"rjmp .spi_not_ready"                    "\n\t"    //если данные не отправлены повторяем процедуру
             
::
            [
spsr"I" (_SFR_IO_ADDR(SPSR)),
            [
spif"I" (SPIF),
            [
spdr"I" (_SFR_IO_ADDR(SPDR)),
            [
spi_data"r" (SPI_data)
             ); 
Admin вне форума   Ответить с цитированием
 


Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 19:46. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика