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

 
 
> Помогите оптимизировать, Сишный код для авр
ScrambledStamp
сообщение Oct 8 2008, 16:21
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 31-05-08
Пользователь №: 37 943



Помогите оптимизировать код, надо его сделать побыстрее, очень не хочется уменьшать разрядность. .

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
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 16:07
Рейтинг@Mail.ru


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