eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAVR ATmega, pomiar częstotliwości przebiegu, prośba o sprawdzenie kodu › Re: AVR ATmega, pomiar częstotliwości przebiegu, prośba o sprawdzenie kodu
  • Data: 2011-02-11 12:58:27
    Temat: Re: AVR ATmega, pomiar częstotliwości przebiegu, prośba o sprawdzenie kodu
    Od: "Robbo" <y...@m...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Dzięki za wyjaśnienie.
    Sprawdziłem...

    union{
    volatile uint8_t V;
    uint8_t NV;
    }aqq;


    ISR(od_jakiegos_timera){
    if (aqq.NV != 0) aqq.NV--;
    }

    main(){

    aqq.V = 100;
    while(aqq.V != 0);
    }

    Daje kod dla ISR():
    push r1
    push r0
    in r0, 0x3f
    push r0
    eor r1, r1
    push r24

    lds r24,0x0100
    and r24, r24
    breq .+6
    subi r24, 0x01
    sts 0x0100, r24

    pop r24
    pop r0
    out 0x3f, r0
    pop r0
    pop r1
    reti

    ----------------

    Natomiast program:

    volatile uint8_t V;

    ISR(od_jakiegos_timera){
    if (V != 0) V--;
    }

    main(){

    V = 100;
    while(V != 0);
    }

    Daje kod dla ISR():
    push r1
    push r0
    in r0, 0x3f
    push r0
    eor r1, r1
    push r24

    lds r24,0x0100
    and r24, r24
    breq .+10
    lds r24, 0x0100
    subi r24, 0x01
    sts 0x0100, r24

    pop r24
    pop r0
    out 0x3f, r0
    pop r0
    pop r1
    reti


    ---

    Mam pytanie. Czy do tych "sztuczek" sam dochodziłeś, czy też mógłbyś polecić
    jakieś książki/tutoriale dotyczące optymalizacji kodu dla mikrokontrolerów?

    R.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: