Вт окт 23, 2012 20:19:43
Artos писал(а):Можно ли как то написать оптимальнее? Чтоб проц быстрее обработал команду с пульта?
И еще вопрос сколько тактов приблизительно потребуется на исполнение этого кода?
Вт окт 23, 2012 20:58:52
Вт окт 23, 2012 21:20:44
if{}
if{}
if{}
switch()
{
case 0:
break;
case 1:
break;
case 2:
break;
}
default:
Вт окт 23, 2012 21:25:12
Artos писал(а):А разве скорость исполнения кода не имеет прямую зависимость размеру кода?
Вт окт 23, 2012 21:28:41
__Oleg__ писал(а):
Далеко не всегда! Все дело в том, как выполняются переходы. Линейно или дискретно.
if (x > y)
{
}
if (x>y && a<b)
{
}
Вт окт 23, 2012 21:30:50
Вт окт 23, 2012 21:32:00
Вт окт 23, 2012 21:34:08
Вт окт 23, 2012 21:41:08
; if (timer_ir >= MIN_DATA && timer_ir <= MAX_DATA) // короткий импульс высокого уровня
CALL SUBOPT_0x4
BRLO _0x87
CALL SUBOPT_0x5
BRSH _0x88
_0x87:
RJMP _0x86
_0x88:
; {
;
; data_ir[2] |=1;
__POINTW2MN _data_ir,2
CALL SUBOPT_0x8
; timer_ir=0;
;
; }
;
; if (timer_ir >= MIN_DATA_2 && timer_ir <= MAX_DATA_2) // средний импульс высокого уровня
_0x86:
CALL SUBOPT_0x6
BRLO _0x8A
CALL SUBOPT_0x7
BRSH _0x8B
_0x8A:
RJMP _0x89
_0x8B:
; {
;
; data_ir[3] |=1;
Вт окт 23, 2012 22:07:30
Вт окт 23, 2012 23:09:06
__Oleg__ писал(а):А вообще, не надо путать машинный ASM с самописным. В машинном представлено в удобном виде для машины и мало понятном для человека.
к примеру
cpi R16, 0x30 - сравнение значения регистра R16 (переменная величина) с константой - по человечески
cpi 0х80, 0x30 - (по машинному)
где легче разобраться ?
Вт окт 23, 2012 23:21:51
if (cnt_bit < 8)
{
data0=<<1;
}
if (cnt_bit > 8 && cnt_bit <= 16)
{
data1=<<1;
}
.................
.............
........
if (cnt_bit > 40 && cnt_bit < 49)
{
data5=<<1;
}
cnt_bit++;
if (x>25)
if (x>=26)
Ср окт 24, 2012 11:23:50
Artos писал(а):А скажите пожалуйста, какой код будет быстрее?
- Код:
if (cnt_bit < 8)
{
data0=<<1;
}
if (cnt_bit > 8 && cnt_bit <= 16)
{
data1=<<1;
}
.................
.............
........
if (cnt_bit > 40 && cnt_bit < 49)
{
data5=<<1;
}
cnt_bit++;
Или лучше создать 32битную переменную + 16битную переменную
и использовать тоже счетчик?
мне надо как можно лучше оптимизировать по скорости исполнения кода.
Artos писал(а):И еще вопрос:
какой код быстрее?
- Код:
if (x>25)
или
- Код:
if (x>=26)
Ср окт 24, 2012 11:31:32
Artos писал(а):А как сравнить две переменных со значением? if (x>a && y<b) {}
Пт окт 26, 2012 21:32:25
Artos писал(а):А скажите пожалуйста, какой код будет быстрее?
- Код:
if (cnt_bit < 8)
{
data0=<<1;
}
if (cnt_bit > 8 && cnt_bit <= 16)
{
data1=<<1;
}
.................
.............
........
if (cnt_bit > 40 && cnt_bit < 49)
{
data5=<<1;
}
switch()
{
case 0:
break;
case 1:
break;
case 2:
break;
}
Пт окт 26, 2012 22:17:52