[an error occurred while processing this directive]
А зачем с ним на Си? - "Си пишем, ASM на ум пошло?"...
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено Oleg_0515 02 марта 2004 г. 13:56
В ответ на: Подкиньте плиз ссылку или исходничек на пример работы с sport в 218х на Си используя функции описанные в sport.h отправлено CyberRevenger 02 марта 2004 г. 12:26

Я, например, этой библиотекой не пользуюсь (возможно это мой недостаток). Поскольку это работа с железом, то нужно хорошо представлять его битовую организацию, режимы и т.п. А раз так, то проще делать вставки на асм или вызывать асм-мини-функции.

Хотя можно конечно и на Си обращаться к регистрам, размещенным в памяти, например так (хотя не утверждаю, что это лучший способ):
#define dmreg_Sys_Ctrl_Reg (*((unsigned int dm *)0x3fff))
#define dmreg_Sys_Crtl_Reg (*((unsigned int dm *)0x3fff))
#define dmreg_Dm_Wait_Reg (*((unsigned int dm *)0x3ffe))
#define dmreg_Tperiod_Reg (*((unsigned int dm *)0x3ffd))
#define dmreg_Tcount_Reg (*((unsigned int dm *)0x3ffc))
#define dmreg_Tscale_Reg (*((unsigned int dm *)0x3ffb))
#define dmreg_Sport0_Rx_Words1 (*((unsigned int dm *)0x3ffa))
#define dmreg_Sport0_Rx_Words0 (*((unsigned int dm *)0x3ff9))
#define dmreg_Sport0_Tx_Words1 (*((unsigned int dm *)0x3ff8))
#define dmreg_Sport0_Tx_Words0 (*((unsigned int dm *)0x3ff7))
#define dmreg_Sport0_Ctrl_Reg (*((unsigned int dm *)0x3ff6))
#define dmreg_Sport0_Sclkdiv (*((unsigned int dm *)0x3ff5))
#define dmreg_Sport0_Rfsdiv (*((unsigned int dm *)0x3ff4))
#define dmreg_Sport0_Autobuf_Ctrl (*((unsigned int dm *)0x3ff3))
#define dmreg_Sport1_Ctrl_Reg (*((unsigned int dm *)0x3ff2))
#define dmreg_Sport1_Sclkdiv (*((unsigned int dm *)0x3ff1))
#define dmreg_Sport1_Rfsdiv (*((unsigned int dm *)0x3ff0))
#define dmreg_Sport1_Autobuf_Ctrl (*((unsigned int dm *)0x3fef))
#define dmreg_Prog_Flag_Comp_Sel_Ctrl (*((unsigned int dm *)0x3fe6))
#define dmreg_Prog_Flag_Data (*((unsigned int dm *)0x3fe5))
#define dmreg_BDMA_Word_Count (*((unsigned int dm *)0x3fe4))
#define dmreg_BDMA_Control (*((unsigned int dm *)0x3fe3))
#define dmreg_BDMA_External_Address (*((unsigned int dm *)0x3fe2))
#define dmreg_BDMA_Internal_Address (*((unsigned int dm *)0x3fe1))

// example:
// int adr = dmreg_BDMA_External_Address;
// dmreg_BDMA_External_Address = 0x10;

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru