реклама на сайте
подробности

 
 
> Нужно оптимизировать код, Есть идеи как?
skyled
сообщение Jan 20 2011, 14:56
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



Есть такой кусок кода:
Код
if((pwm>pgm_read_byte(&brightness[pwm_ch[0]]))|(pwm==0)){pd &= ~(1<<0);}//1
        else {pd |= (1<<0);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[1]]))|(pwm==0)){pd &= ~(1<<1);}//2    
        else {pd |= (1<<1);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[2]]))|(pwm==0)){pa &= ~(1<<1);}//3
        else {pa |= (1<<1);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[3]]))|(pwm==0)){pa &= ~(1<<0);}//4
        else {pa |= (1<<0);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[4]]))|(pwm==0)){pd &= ~(1<<2);}//5
        else {pd |= (1<<2);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[5]]))|(pwm==0)){pd &= ~(1<<3);}//6
        else {pd |= (1<<3);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[6]]))|(pwm==0)){pd &= ~(1<<4);}//7
        else {pd |= (1<<4);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[7]]))|(pwm==0)){pd &= ~(1<<5);}//8
        else {pd |= (1<<5);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[8]]))|(pwm==0)){pb &= ~(1<<4);}//9
        else {pb |= (1<<4);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[9]]))|(pwm==0)){pb &= ~(1<<3);}//10
        else {pb |= (1<<3);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[10]]))|(pwm==0)){pb &= ~(1<<2);}//11
        else {pb |= (1<<2);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[11]]))|(pwm==0)){pb &= ~(1<<1);}//12
        else {pb |= (1<<1);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[12]]))|(pwm==0)){pb &= ~(1<<0);}//13
        else {pb |= (1<<0);}
        if((pwm>pgm_read_byte(&brightness[pwm_ch[13]]))|(pwm==0)){pd &= ~(1<<6);}//14
        else {pd |= (1<<6);}
Он обрабатывается за 345 тактов. Мне нужно менее 300. Это возможно? А можно это как-то оформить ассемблерной вставкой? Спасибо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- skyled   Нужно оптимизировать код   Jan 20 2011, 14:56
- - rezident   Проверку pgm==0 из каждого условия уберите, сделав...   Jan 20 2011, 15:07
- - codier   Жуть А побитное или ("|") в условиях в...   Jan 20 2011, 15:14
- - skyled   Спасибо за совет! Код действительно полегчал. ...   Jan 20 2011, 15:21
- - codier   А нельзя pgm_read_byte(&brightness[pwm_ch[1]])...   Jan 20 2011, 15:26
|- - skyled   Цитата(codier @ Jan 20 2011, 18:26) А нел...   Jan 20 2011, 15:47
|- - follow_me   избавьтесь от операций сдвига это забирает один ...   Jan 20 2011, 18:03
|- - 777777   Цитата(follow_me @ Jan 20 2011, 21:03) из...   Jan 20 2011, 18:08
- - follow_me   pwm>pgm_read_byte(&brightness[pwm_ch[7]]) ...   Jan 20 2011, 18:40
|- - smk   Цитата(follow_me @ Jan 20 2011, 20:40) pw...   Jan 20 2011, 19:09
|- - follow_me   Цитата(smk @ Jan 20 2011, 21:09) совершен...   Jan 20 2011, 20:32
|- - 777777   Еще можно для оптимизации вытащить brightness из ф...   Jan 21 2011, 07:18
|- - demiurg_spb   Цитата(777777 @ Jan 21 2011, 10:18) Еще м...   Jan 21 2011, 14:01
- - codier   2follow_me: 2777777: Глянул искомый девайс: Цитат...   Jan 21 2011, 07:38
- - _Pasha   Все чаще и чаще наблюдаются жутковатые перлы. По ...   Jan 21 2011, 08:54
- - follow_me   В циклах кстати для приращения итератора стоит исп...   Jan 21 2011, 15:34
- - _Pasha   Цитата(demiurg_spb @ Jan 21 2011, 18:01) ...   Jan 21 2011, 18:50
- - defunct   Концептуально можно ускорить код - если вместо про...   Jan 23 2011, 22:41
- - skyled   Навскидку разумное зерно есть. Надо бдумать. А не ...   Jan 24 2011, 14:55
|- - defunct   Цитата(skyled @ Jan 24 2011, 16:55) А не ...   Jan 24 2011, 16:22
|- - pokos   Цитата(defunct @ Jan 24 2011, 19:22) Долж...   Jan 24 2011, 17:37
- - pokos   У меня на 3 канала было вот так сделано: Код// Tim...   Jan 24 2011, 15:05
|- - kolobok0   Цитата(pokos @ Jan 24 2011, 18:05) Код......   Jan 25 2011, 10:15
||- - pokos   Цитата(kolobok0 @ Jan 25 2011, 13:15) А т...   Jan 25 2011, 11:39
|- - _Bill   Цитата(pokos @ Jan 24 2011, 19:05) У меня...   Jan 25 2011, 10:46
- - skyled   Тут выяснилось, что еще вот эта конструкция кушает...   Jan 25 2011, 10:11
|- - xemul   Цитата(skyled @ Jan 25 2011, 13:11) Тут в...   Jan 25 2011, 11:52
|- - Сергей Борщ   QUOTE (skyled @ Jan 25 2011, 12:11) Тут в...   Jan 25 2011, 12:16
|- - xemul   Цитата(Сергей Борщ @ Jan 25 2011, 15:16) ...   Jan 26 2011, 14:06
|- - Сергей Борщ   QUOTE (xemul @ Jan 26 2011, 16:06) Замена...   Jan 26 2011, 18:39
- - pokos   Чото не могу найти в закромах финальные исходники ...   Jan 25 2011, 20:30
- - _Pasha   Цитата(kolobok0 @ Jan 25 2011, 13:15) хот...   Jan 25 2011, 21:07
- - kolobok0   Цитата(_Pasha @ Jan 26 2011, 00:07) ...Во...   Jan 25 2011, 22:00
- - _Pasha   Цитата(kolobok0 @ Jan 26 2011, 01:00) или...   Jan 27 2011, 04:15
- - defunct   Цитата(_Pasha @ Jan 27 2011, 06:15) Ну п...   Feb 1 2011, 12:51
- - _Pasha   Цитата(defunct @ Feb 1 2011, 15:51) Ни од...   Feb 1 2011, 16:37
- - defunct   Цитата(_Pasha @ Feb 1 2011, 18:37) А по В...   Feb 2 2011, 02:24


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 05:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.03446 секунд с 7
ELECTRONIX ©2004-2016