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.

generator - Config Timer1 = Pwm .... problem:)

BlueTiger 17 Lis 2004 23:47 2298 2
  • #1 17 Lis 2004 23:47
    BlueTiger
    Poziom 10  

    Witam chce użyć procesora AT90S2313 do sterowania szybkości silnika. I chyba najlepiej do tego będzie nadawał się licznik timer1 skonfigurowany, jako PWM. Czytałem o tym w pomocy, ale jakoś niewiele mi to gada:( z jakiego pinu będą wychodzić te impulsy??? Z T1(PD5) czy OC1(PB3) czy jeśli wpisze te „dosconnet” to wyjściem biedzie T1 a jeśli nie to OC1 albo weź tego polecenie mam 2 generatory???? Jakie znaczenie ma ile bitow ma mieć ten licznik???
    Pomocy!!!!!!!!
    PS. Pomocy :) w helpie pisze cos takiego:


    […]Można także używać licznika-czasomierza TIMER1 jako dwóch niezależnych generatorów impulsów o regulowanym wypełnieniu - Pulse Widht Modulation (parametr TIMER1 = PWM), posiadających jednak wspólny układ taktujący. Dla tego trybu poszczególne opcje mają następujące znaczenie:

    PWM Określa rozdzielczość generatora w bitach. Możliwe są wartości 8, 9 i 10 bitów.
    COMPARE A PWMCOMPARE B PWM Określa tryb pracy generatora PWM. CLEAR DOWN włącza tryb normalny - im mniejsza liczba w rejestrze COMPARE1x tym krócej trwa stan wysoki na wyjściu impulsów PWM. CLEAR UP włącza tryb odwrócony - im mniejsza liczba w rejestrze COMPARE1x tym krócej trwa stan niski na wyjściu impulsów PWM. Podanie DISCONNECT powoduje, że odpowiednia końcówka - OC1A lub OC1B - przestanie być wyjściem impulsów PWM.
    Użycie COMPARE A, COMPARE B, COMPARE A PWM lub COMPARE B PWM spowoduje ustawienie odpowiedniej końcówki jako wyjście. Gdy nie jest to pożądane można dodać argument NO_OUTPUT, co spowoduje że tryb pracy końcówki nie zostanie zmieniony.
    Dla przykładu: COMPARE A NO_OUTPUT , COMPARE A PWM NO_OUTPUT

    Uwaga! COMPARE1A, COMPARE1B, CAPTURE1 to w rzeczywistości nazwy zmiennych definiowanych przez BASCOM automatycznie. Ponieważ odnoszą się bezpośrednio do odpowiednich rejestrów w przestrzeni adresowej, nazwane zostały rejestrami w celu uproszczenia opisu.

    Przykład:
    '-------------------------------------------------------------------
    ' TIMER1.BAS dla procesora AT90s8515
    '-------------------------------------------------------------------
    Dim W As Word

    'TIMER1 jest 16-bitowym licznikiem
    'Ten program przykładowy pokazuje jak skonfigurować licznik TIMER1

    'Tak samo jak przy liczniku TIMER0 , może służyć jako licznik lub
    'czasomierz
    'Najpierw skonfigurujemy licznik jako czasomierz, zliczający impulsy

    'zegarowe

    'Wewnętrzny zegar może być podzielony przez preskaler przez 1,8,64,256
    'lub 1024
    Config Timer1 = Timer , Prescale = 1024


    'Możesz odczytywać i zapisywać dane z licznika TIMER1, za pomocą
    'specjalnej zmiennej systemowej:
    W = Timer1
    Timer1 = W




    'można także wykorzystać TIMER1 jako generator PWM. Licznik
    'może mieć wtedy 8, 9 lub 10 bitów.
    'Można ustawić czy licznik ma zliczać w górę (UP) czy w dół (DOWN)
    'po stwierdzeniu zgodności “wskazań” licznika i rejestru COMPARE.
    'W trybie tym są dwa rejestry COMPARE!
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down

    'Tu także można zmieniać zawartość licznika COMPARE za pomocą specjalnych zmiennych systemowych.
    Compare1a = 100
    Compare1b = 200

    'albo dla polepszenia czytelności:
    Pwm1a = 100
    Pwm1b = 200

    End

    0 2
  • #2 18 Lis 2004 00:59
    LordBlick
    VIP Zasłużony dla elektroda

    BlueTiger napisał:
    Witam chce użyć procesora AT90S2313 do sterowania szybkości silnika. I chyba najlepiej do tego będzie nadawał się licznik timer1 skonfigurowany, jako PWM. Czytałem o tym w pomocy, ale jakoś niewiele mi to gada:( z jakiego pinu będą wychodzić te impulsy??? Z T1(PD5) czy OC1(PB3) czy jeśli wpisze te „dosconnet” to wyjściem biedzie T1 a jeśli nie to OC1 albo weź tego polecenie mam 2 generatory???? Jakie znaczenie ma ile bitow ma mieć ten licznik???

    T1 to możliwe do skonfigurowania wejście do zliczania przez sprzętowy licznik Timer1/Countrer1. Jeśli używasz PWM w tym procesorku, to potrzebujesz OC1 na wyjściu i ten licznik skonfigurowany w trybie "time compare", czyli wejście musi mieć stałe impulsy zegarowe, które możesz podawać z zewnętrznego źródła na wejście T1, lub z wewnętrznego zegara (kwarc itp.) - wtedy T1 możesz użyć do czegoś innego jako standardowy pin PD5. Rozdzielczość ma znaczenie na dokładności, np. 8bit to możliwość regulacji szerokości impulsu co 1/256 czasu całości (powtarzalnego okresu), a 10bitów to 1/1024 itd. Istnieją zastosowania, gdzie to jest istotne, np. sterowanie czasem naświetlania kliszy fotograficznej w niektórych zastosowaniach trikowych, gdzie potrzebna jest większa dokładność.
    Poza tym Help Bascoma zakłada, że już przeczytałeś notę katalogową AT90S2313 (s. 27-36) z tej strony... ;)
    Pozdrawiam, LightI

    0
  • #3 18 Lis 2004 22:14
    BlueTiger
    Poziom 10  

    Witam
    No teraz to kumam, ale jeszcze 1 pytanko czy da się tak zrobic żeby po spełnieniu jakis warunków port oc1 miał albo 1 albo 0 albo działał jako PWM???? Czy wartości Compare1a i
    Compare1b mogą być zmiennymi??? Bo wtedy by można dac parametr Compare1a na 1, Compare1b na 0 by był stan wysoki na wyjściu i odwrotnie. I jak regulowac jego częstotliwość??? Przez zmiane ilości bitów licznika i wartości zmiennych systemowych??? Im wartości większe tym mniejsza częstotliwość ???
    Pozdrawiam
    BlueTiger

    0