Dobry będzie taki program?
Można coś jeszcze poprawić?
Może lepiej byłoby ustawić jakieś wyższe prescale w timerze np.8, żeby mniej tych impulsów zliczał (można by wtedy operować na mniejszych liczbach, program działałby na pewno szybciej - ale czy mierzyłby równie dokładnie?)
Na pewno na elektrodzie był już poruszany temat obrotomierzy, ale szukajka coś mi nie działa, więc może omówimy mojego gniota
Można coś jeszcze poprawić?
Może lepiej byłoby ustawić jakieś wyższe prescale w timerze np.8, żeby mniej tych impulsów zliczał (można by wtedy operować na mniejszych liczbach, program działałby na pewno szybciej - ale czy mierzyłby równie dokładnie?)
Na pewno na elektrodzie był już poruszany temat obrotomierzy, ale szukajka coś mi nie działa, więc może omówimy mojego gniota
$regfile = "m8def.dat" 'najpierw określamy typ proca
$crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował
'############################################################'konfiguracja portów i liczników
Config Portb = Output
Portb = &B11111111
Config Portd = &B11111011 'pind.2 impulsator we przerwania int0
Portd = &B11111111
'####################konfig przerwań i licznika
Config Int0 = Falling
On Int0 Zapamietanie
Enable Int0
Enable Interrupts
Config Timer1 = Timer , Prescale = 1 'licznik 16bitowy max65535 impulsów
'############################################################'deklaracja zmiennych
Dim Jedn As Byte
Dim Poprzecinku As Byte
Dim Impulsy As Word
Dim Obroty As Long
'############################################################program właściwy
'#######################wyświetlanie
Do
If 0 < Impulsy Then
Obroty = 300000 \ Impulsy
'Print Impulsy
'Print Obroty
Jedn = Obroty \ 10
Poprzecinku = Obroty Mod 10
Set Pind.0
Portb = Lookup(poprzecinku , Tabela)
Reset Pind.0
Set Pind.1
Portb = Lookup(jedn , Tabela)
Reset Pind.1
End If
Loop
End
Tabela: ' dane do wyświetlania kolejnych cyfr od 0 do 9
Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144
Zapamietanie:
Impulsy = Timer1
Timer1 = 0
Return