Деклараций не надо - результат покажите. Попробовал для AVR вычитанием. Получилось медленнее (1180), не говоря о размере кода.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено асибо 19 ноября 2004 г. 14:37
В ответ на: получится быстрее, посмотри, за сколько ПИК освоит 2-байтное, и сравни. Пропорция сохранится. отправлено =mse= 19 ноября 2004 г. 14:04


void main()
{
unsigned long val;
unsigned char bcd[7];
unsigned char i;

val = 9999999;

asm(" nop");
for (i = 0; i < 7; i++) bcd[i] = 0;
while ( val > 1000000)
{
bcd[0]++;
val -= 1000000;
}
while ( val > 100000)
{
bcd[1]++;
val -= 100000;
}
while ( val > 10000 )
{
bcd[2]++;
val -= 10000;
}
while (*(unsigned int *)&val > 1000)
{
bcd[3]++;
*(unsigned int *)&val -= 1000;
}
while (*(unsigned int *)&val > 100)
{
bcd[4]++;
*(unsigned int *)&val -= 100;
}
while ( *(unsigned char *)&val > 10)
{
bcd[5]++;
*(unsigned char *)&val -= 10;
}
bcd[6] = val;
asm(" nop");
}


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

Ответы



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

E-mail: info@telesys.ru