eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaavr i C - kto nie rozumie: kompilator, procesor czy ja? › Re: avr i C - kto nie rozumie: kompilator, procesor czy ja?
  • Data: 2013-01-06 17:28:40
    Temat: Re: avr i C - kto nie rozumie: kompilator, procesor czy ja?
    Od: Jakub Rakus <s...@o...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 06.01.2013 16:58, Grzegorz Niemirowski pisze:

    > Nie wiem, co u Ciebie dokładnie oznacza -O, u mnie jest to -O1.
    Zjadła się jedynka, też mam -O1.

    > Poza tym w pierwszym poście piszesz: "I zonk, na porcie ciągle stan
    > wysoki." z czego wynika, że u Ciebie w ogóle nie wykonuje się pętla while.
    Zasugerowałem się tym, że leda mi ciągle świeci, ale faktycznie pętla
    się wykonuje - tylko, że cholernie szybko...

    > //round up by default
    > __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
    > #endif
    > __builtin_avr_delay_cycles(__ticks_dc);
    > a0: 2f ef ldi r18, 0xFF ; 255
    > a2: 39 e6 ldi r19, 0x69 ; 105
    > a4: 48 e1 ldi r20, 0x18 ; 24
    > a6: 21 50 subi r18, 0x01 ; 1
    > a8: 30 40 sbci r19, 0x00 ; 0
    > aa: 40 40 sbci r20, 0x00 ; 0
    > ac: e1 f7 brne .-8 ; 0xa6 <main+0x14>
    > ae: 00 c0 rjmp .+0 ; 0xb0 <main+0x1e>

    O widzisz tu właśnie jest rozbieżność - u Ciebie jak widzę działa to
    dokładnie tak jak opisane jest to na początku delay.h. U mnie
    _HAS_DELAY_CYCLES ma wartość 1, więc teoretycznie także powinna zostać
    wywołana funkcja _builtin_avr_delay_cycles, a z jakiegoś powodu tak się
    nie dzieje.

    --
    Pozdrawiam
    Jakub Rakus

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: