Вот С-эквивалент этого (+)
(«Телесистемы»: Конференция 'Микроконтроллеры и их применение')

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

Отправлено SM 12 июля 2004 г. 15:22
В ответ на: А вот еще - правда ассемблер TMS320LF24xx отправлено SM 12 июля 2004 г. 15:00

add - сложение двух 16-битеых чисел
L_mult - 16x16=>32

Для получения 16-битного разрядность всего укоцать в 2 раза.


Word16 Sqrt_lbc( Word32 Num )
{
int i ;

Word16 Rez = (Word16) 0 ;
Word16 Exp = (Word16) 0x4000 ;

Word32 Acc ;

for ( i = 0 ; i < 14 ; i ++ ) {

Acc = L_mult( add(Rez, Exp), add(Rez, Exp) ) ;
if ( Num >= Acc )
Rez = add( Rez, Exp ) ;

Exp = shr( Exp, (Word16) 1 ) ;
}
return Rez ;
}


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

Ответы



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

E-mail: info@telesys.ru