Config Timer0 = Counter , Gate = External , Mode = 1 'konfiguracja timer0
Config Timer1 = Timer , Gate = Internal , Mode = 1 'konfiguracja timer1
Config Lcd = 16 * 2 'konfiguracja lcd
Cursor Off Noblink
Dim Frequency As Long 'zmienna częstotliwości
Dim Temp As Long 'zmienna przepełnienia
Dim Counts As Byte 'zmienna do 1sekundy
Declare Sub 1sekunda 'deklaracja podprogramu
On Timer1 Timer1_int 'przerwanie timer1
On Timer0 Overflow 'przerwanie timer0
Enable Interrupts 'zezwolenie na przerwania
Enable Timer0 'przerwanie timer0 on
Enable Timer1 'przerwanie timer1 on
Cls 'wyczyść lcd
Do 'początek pętli
Cls 'wyczyść lcd
Lcd "Went: " ; Frequency ; " RMP" 'wyświetl częstotliwość
Frequency = 0 'zeruj zmienne
Counter0 = 0
Temp = 0
Call 1sekunda
Stop Counter0 'wywołaj opóźnienie 1 sekundy
Frequency = 65536 * Temp ' obliczanie częstotliwości
Temp = Counter0
Frequency = Frequency + Temp
Loop 'koniec pętli
Sub 1sekunda 'podrogram 1sekundy
Counts = 0 'zeruj zminną
Counter1 = 4150 'wpisz do licznika 4150
Start Timer1 'start timer1 i timer0
Start Timer0
Do 'pętla
If Counts = 15 Then 'jeśli 15 przepełnień to
Stop Timer1 'zatrzymaj timer1 i timer0
Stop Timer0
Exit Do 'koniec pętli
End If 'koniec warunku
Loop 'skok do początku pętli
End Sub 'koniec podprogramu
Timer1_int: 'podprogram przerwania timer1
Counter1 = 4150 'wpisz do licznika 4150
Start Timer1 'ruchom licznik
Incr Counts 'zwiększ wskaźnik przepełnienia
Return 'powrót
Overflow: 'podrogram przerwania counter0
Incr Temp 'zwiększ o 1 temp:ilość przepełnień counter0
Return
Czy ma ktoś coś podobnego tylko dla AVR ten kod jest dla 89Cxxxx.
Potrzebuje kod licznika (ilość kliknięć na sekunde) np, kliknięc w przycisk pod AVR.
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięLicznik - RMP
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Od początku staram się zgłębić tajniki BASCOMa dla AVRów.
Z mojego obecnego doświadczenia i tego co pokazuje kompilator AVRów wynika że wystarczy zmienić linijki knofigurujące timery.
Dla AVRów to jest składnia:
CONFIG TIMER0 = COUNTER , PRESCALE= 1|8|64|256|1024 ,
EDGE=RISING/FALLING , CLEAR TIMER = 1|0
CONFIG TIMER0 = TIMER , PRESCALE= 1|8|64|256|1024
gdzie:
EDGE - to wybór czy timer ma być wyzwalany zboczem opadającym czy rosnącym
PRESCALE - użycie tego polecenia oznacza że podpinasz Timer do wew. zegara i dokonujesz wyboru podziału częstotliwości
i to tyle. Więcej zastrzeżeń nie zgłaszał kompilator
Z mojego obecnego doświadczenia i tego co pokazuje kompilator AVRów wynika że wystarczy zmienić linijki knofigurujące timery.
Dla AVRów to jest składnia:
CONFIG TIMER0 = COUNTER , PRESCALE= 1|8|64|256|1024 ,
EDGE=RISING/FALLING , CLEAR TIMER = 1|0
CONFIG TIMER0 = TIMER , PRESCALE= 1|8|64|256|1024
gdzie:
EDGE - to wybór czy timer ma być wyzwalany zboczem opadającym czy rosnącym
PRESCALE - użycie tego polecenia oznacza że podpinasz Timer do wew. zegara i dokonujesz wyboru podziału częstotliwości
i to tyle. Więcej zastrzeżeń nie zgłaszał kompilator
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 43 gości