Witam
Próbuje ogarnąć temat generowania częstotliwości
Postanowiłem wykonać generator 22kHz
Mam straszny problem z wyliczaniem ile należy wpisać do licznika aby uzyskać odpowiednią częstotliwość
pozłużyłem się kalkulatorem ze strony WKRĘTAK.PL
Wyszło mi że aby uzyskać 22000Hz przy osc. 8MHz i preskalerze 1 należy wpisać do Pwm1 wartość 363
Zrobiłem tak w swoim programie ale niestety nie otrzymałem tej częstotliwość
Dopiero zmniejszając wartość Pwm1 do 181 uzyskałem moje 22kHz
Nie mogę zrozumieć o co tu chodzi gdzie jest mój błąd w liczeniu ??
Czy ktoś ma link do przelicznika który by np: po wpisaniu 8MHz pokazał że to jest 125ns ? mam zawsze z tym problem dla przykładu te moje nieszczęsne 22KHz zwykłym kalkulatorem to wychodzą jakieś czary mary 4.54545454545455e-005
Próbuje ogarnąć temat generowania częstotliwości
Postanowiłem wykonać generator 22kHz
Mam straszny problem z wyliczaniem ile należy wpisać do licznika aby uzyskać odpowiednią częstotliwość
pozłużyłem się kalkulatorem ze strony WKRĘTAK.PL
Wyszło mi że aby uzyskać 22000Hz przy osc. 8MHz i preskalerze 1 należy wpisać do Pwm1 wartość 363
Zrobiłem tak w swoim programie ale niestety nie otrzymałem tej częstotliwość
Dopiero zmniejszając wartość Pwm1 do 181 uzyskałem moje 22kHz
Nie mogę zrozumieć o co tu chodzi gdzie jest mój błąd w liczeniu ??
Czy ktoś ma link do przelicznika który by np: po wpisaniu 8MHz pokazał że to jest 125ns ? mam zawsze z tym problem dla przykładu te moje nieszczęsne 22KHz zwykłym kalkulatorem to wychodzą jakieś czary mary 4.54545454545455e-005
'Generator 22khz
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portd.0 , E = Portc.4 , Rs = Portc.5
' należy skonfigurować LCD zamienić zworami portc.0 na portd.0
Config Pinb.1 = Output
Config Pind.2 = Input
Config Pind.3 = Input
Set Portd.2
Set Portd.3
Config Timer1 = Timer , Compare A = Toggle , Compare B = Disconnect , Prescale = 1 , Clear Timer = 1
Dim Zmienna As Word
Enable Interrupts
Enable Int0
Enable Int1
On Int0 Up
On Int1 Down
Zmienna = 363 'zmienna do której wpisałem ilość wyliczonych cykli, zmienna=Pwm1
Do
Pwm1a = Zmienna
Loop
End
Up: 'przycisk UP zwieksza warość Pwm1
Waitms 10
If Pind.2 = 0 Then
Waitms 25
If Pind.2 = 0 Then
Zmienna = Zmienna + 1
If Zmienna > 1024 Then
Zmienna = 0
End If
End If
End If
Cls
Lcd Zmienna
Waitms 100
Return
Down: 'przycisk DOWN zmniejsza wartość PWM1
Waitms 10
If Pind.3 = 0 Then
Waitms 25
If Pind.3 = 0 Then
Zmienna = Zmienna - 1
If Zmienna > 1024 Then
Zmienna = 0
End If
End If
End If
Cls
Lcd Zmienna
Waitms 100
Return
