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:33:03
    Temat: Re: AVR ATmega, pomiar częstotliwości przebiegu, prośba o sprawdzenie kodu
    Od: Zbych <a...@o...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2011-02-11 13:22, Robbo pisze:
    >> Zamiast tego posłuż się ATOMIC_BLOCK
    >
    >
    > Zrobiłem tak:
    >
    > while (1) {
    > ATOMIC_BLOCK(ATOMIC_FORCEON) {
    > actualDurationLatch = actualDuration;
    > }
    >
    > sprintf(s, "%d %ld ", i++, actualDurationLatch);
    > LCDwriteString(s);
    > }
    >
    > W Makefile dałem -std=gnu99.
    >
    > Efekt jest taki, że na wyświetlaczu widzę cały czas zwiększającą się
    > wartość zmiennej "i". Natomiast actualDurationLatch przyjmuje jakąś
    > wartość i tak już trwa -- nie reaguje na zmianę częstotliwości. Gdy
    > wyrzucę ATOMIC_BLOCK, to actualDurationLatch ożywa.

    Dopisz do swojego programu dwie linie:

    while (1) {
    asm volatile(";ala ma kota - start"); //<----------------
    ATOMIC_BLOCK(ATOMIC_FORCEON) {
    actualDurationLatch = actualDuration;
    }
    asm volatile(";ala ma kota - stop"); //<----------------

    sprintf(s, "%d %ld ", i++, actualDurationLatch);
    LCDwriteString(s);
    }

    Skompiluj, otwórz plik *.lss, który zawiera program po deasemblacji,
    poszukaj ciągu "ala ma kota" i porównaj czym wersja z ATOMIC różni się
    od wersji bez ATOMIC.

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: