Kod: Zaznacz cały
$regfile = "attiny2313.dat"
$crystal = 4000000
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down
'8-bitowy przetwornik PWM - liczy 0...255
Portd = &B11 'podciągając wejscia PD.0, PD.1 umożliwiamy pracę przycisków S1, S2
'ale powyższa linia jest niepotrzebna, jeśli są połączone kołki zwór J4, J5
Pwm1a = 255 'początkowa wartość rejestru Pwm1a - maksimum
Do 'pętla nieskończona
If Pind.0 = 0 Then Decr Pwm1a 'S1 zmniejsza zawartość rejestru Pwm1a (=OCR1)
If Pind.1 = 0 Then Incr Pwm1a 'S2 zwiększa zawartość rejestru Pwm1a (=OCR1)
'ponieważ rejestr PWM1a (=OCR1) jest 10-bitowy (0...1023),
'a my tu mamy PWM 8-bitowy, więc powinniśmy skracać jego cykl zliczania:
If Pwm1a = 256 Then Pwm1a = 0 ' przy zliczaniu w górę po 255 będzie 0
If Pwm1a = 1023 Then Pwm1a = 255 ' przy zliczaniu w dół po 0 będzie 255
Cls : Lcd Pwm1a : Lowerline : Lcd Timer1 'jak poprzednio
Waitms 20 ' 20ms opóźnienia - średnia szybkość zmian przy naciskaniu S1, S2
Loop : EndNie mam podłączonego wyświetlacza LCD już wyjaśniam dlaczego:
Opisany program przestaje zupełnie działać po usunięciu tej linii
Kod: Zaznacz cały
Cls : Lcd Pwm1a : Lowerline : Lcd Timer1 'jak poprzednioDrugie pytanie
Jeśli rozdzielczość pwm wynosi 8, to dlaczego widnieje zapis
Kod: Zaznacz cały
If Pwm1a = 1023 Then Pwm1a = 255 ' przy zliczaniu w dół po 0 będzie 255
Bardzo proszę o odpowiedź ponieważ mam z tym problem.
dziękuję pozdrawiam
spanner