[an error occurred while processing this directive]
С точки зрения скорости освоения проца лучше асма нет. C DSP/BIOS его можно так до конца и не освоить... CSL местами просто отвратен, как насчет полного запрета прерываний при передаче по тормозному I2C? как насчет циклов задержки for (i=0;i<32000;i++) { asm(" NOP") }? Смотрите оба примера в приведенном куске кода
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено AntZ 27 ноября 2003 г. 08:17
В ответ на: Ответ: отправлено Vasilyevich 27 ноября 2003 г. 08:01


int I2C_write(Uint16 *data,int length,int master,Uint16 slaveaddress,int transfermode,int timeout) {


int i,j,k,l,m;
int old_intm;
Uint16 temp=1;

old_intm = IRQ_globalDisable();

/* set in transmit mode */
I2C_FSET(I2CMDR,TRX,1);

I2C_RSET(I2CCNT,length); /* set the count register */

/* SKIPPED */
for (k=1;k

for (i=0;i<32000;i++) { /* delay loop */
asm (" NOP");
}

for (l=0;l<=timeout;l++) { /* check for NACK status */
temp=I2C_FGET(I2CSTR,NACK);
if (temp==0) break;
}

/* SKIPPED */

IRQ_globalRestore(old_intm);

return 0;

} /* end of I2C_send */



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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 

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

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

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


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru