Помогите оптимизировать код, надо его сделать побыстрее, очень не хочется уменьшать разрядность. .
unsigned char pwma[256], pwmb[256], pwmc[256];
unsigned char pwmstep;
// PWM main interrupt
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
// Place your code here
PORTA=pwma[pwmstep];
PORTB=pwmb[pwmstep];
PORTC=pwmc[pwmstep];
pwmstep++;
}
Компилятор (кодевижн) выдает такой листинг:
Код
; 189 // PWM main interrupt
; 190 interrupt [TIM2_COMP] void timer2_comp_isr(void)
; 191 {
_timer2_comp_isr:
ST -Y,R30
ST -Y,R31
IN R30,SREG
ST -Y,R30
; 192 // Place your code here
; 193 PORTA=pwma[pwmstep];
MOV R30,R9
LDI R31,0
SUBI R30,LOW(-_pwma)
SBCI R31,HIGH(-_pwma)
LD R30,Z
OUT 0x1B,R30
; 194 PORTB=pwmb[pwmstep];
MOV R30,R9
LDI R31,0
SUBI R30,LOW(-_pwmb)
SBCI R31,HIGH(-_pwmb)
LD R30,Z
OUT 0x18,R30
; 195 PORTC=pwmc[pwmstep];
MOV R30,R9
LDI R31,0
SUBI R30,LOW(-_pwmc)
SBCI R31,HIGH(-_pwmc)
LD R30,Z
OUT 0x15,R30
; 196 pwmstep++;
INC R9
; 197 }
_0xF0:
LD R30,Y+
OUT SREG,R30
LD R31,Y+
LD R30,Y+
RETI
; 198