Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

zmierzyc szerokosc impulsu AVR

nowy125 04 Paź 2015 12:39 663 2
  • #1 04 Paź 2015 12:39
    nowy125
    Poziom 2  

    Witam.

    Przeszukałem dokładnie internet i nie znalazłem podobnego przykładu stąd zapytanie.

    Czy może ktoś podpowiedziec jak napisać obliczenia na zmiennych ?

    Mam zadanie napisać listing i zaprogramować procka , który będzie mierzył ile impulsów z timer1 mieści się w przerwaniu INT1 , tzn. kiedy INT1 =1 wtedy ile w tym czasie impulsów zliczy Timer1.

    Licznik sie nie przekręci bo przestrajany generator pracuje w granicach 20-100KHz.

    Najbardziej prosty w programowaniu zauważyłem jest AVR , stąd wybrałem go do testów.

    Wyliczyłem że przy kwarcu 8Mghz i prescaler=0 , przy nastawie generatora na 50KHz , przerwanie bedzie trwało 20us więc Timer1 powinien zliczyć 160 impulsów.

    Kolejny problem to wygenerowanie po zakończeniu impulsu szerszego o 50% od zmierzonego. Kolejny ma być węższy 0 30% od zmierzonego ale myślę że już dam radę przerobić dodawanie na odejmowanie mając inspirację jak prawidłowo napisać pomiar i dodawanie.

    Teoretycznie wiem jak to zrobić tzn. zmienna "zliczoneimpulsy" dzielę przez 100 następnie mnożę razy 50 i wynik zmienna "procenty" dodaje do zmiennej "zliczoneimpulsy" i mam wtedy wynik szerszy o 50% z tym że po wykonaniu wielu bezkutecznych prób zewnętrzny licznik pokazuje zawsze nieprawidłowe wyniki.

    Jak prawidłowo napisać te zmienne. Dodam że zadanie robię w bascom , na razie zakułem niewielkie podstawy asemblera nie wspomnę o innych językach programowania.

    Pętla do loop jest pusta , pomiary i obliczenia próbowałem robić poza pętlą na zmiennych , może tutaj jest błąd bo coś powinno się może kręcić w pętli , tylko nie wiem co.

    0 2
  • #2 04 Paź 2015 19:10
    nowy125
    Poziom 2  

    Może życzliwy fachowiec zauważył ten temat ?

    0
  • #3 05 Paź 2015 12:44
    nowy125
    Poziom 2  

    Może ktoś podpowie przynajmniej jak zmierzyć szerokość impulsu ?

    Dzięki za każdą konkretną wskazówkę.

    0