Witam serdecznie!
Najpierw może podzielę się kodem:
Atmega644p, tak sobie rozważam bo nie działa mi to jak trzeba...
Dane z zegara PCF8583 to Ustaw_czasu_ms są to milisekundy, Ust_poranek to ilość minut jakie ma trwać rozjaśnianie, wszelkie Plynnosc to pomocnicze zmienne.
Najpierw obliczam ile minut trwa całość rozjaśniana (Plynnosc) razy czas trwania sekundy w ms, potem dzielę to przez 10bitowy PWM (otrzymuję Plynnosc_t) i w tej danej wiem co ile czasu w ms powinien się zwiększać Pwm1b. Zaokrąglam wrazie co do całkowitej najbliższej i jako Plynnosc_r ustalam Reszta_pwm1b dzieląc otrzymane z zegara ms z Plynnosc_r. Jeśli ta reszta (mod) jest równa zero to dopiero wtedy Pwm1b może się zwiększyć.
Moim zamierzeniem jest automatyczne wyznaczenie przerw czasowych i inkrementację w nich Pwmb1 tak aby dla dowolnego okresu czasu 1024 razy zwiększać Pwmb1 aż do maksimum.
Teraz pytanie: Jesli dobrze matematycznie to rozgryzłem (pomijając małe zaokrąglenia ROUND) to czemu proces jednominutowy (Ust_poranek=1) nie trwa 1 minutę a około 170s?
Z góry dziękuję za odpowiedzi.
Najpierw może podzielę się kodem:
Code: basic4gl
Atmega644p, tak sobie rozważam bo nie działa mi to jak trzeba...
Dane z zegara PCF8583 to Ustaw_czasu_ms są to milisekundy, Ust_poranek to ilość minut jakie ma trwać rozjaśnianie, wszelkie Plynnosc to pomocnicze zmienne.
Najpierw obliczam ile minut trwa całość rozjaśniana (Plynnosc) razy czas trwania sekundy w ms, potem dzielę to przez 10bitowy PWM (otrzymuję Plynnosc_t) i w tej danej wiem co ile czasu w ms powinien się zwiększać Pwm1b. Zaokrąglam wrazie co do całkowitej najbliższej i jako Plynnosc_r ustalam Reszta_pwm1b dzieląc otrzymane z zegara ms z Plynnosc_r. Jeśli ta reszta (mod) jest równa zero to dopiero wtedy Pwm1b może się zwiększyć.
Moim zamierzeniem jest automatyczne wyznaczenie przerw czasowych i inkrementację w nich Pwmb1 tak aby dla dowolnego okresu czasu 1024 razy zwiększać Pwmb1 aż do maksimum.
Teraz pytanie: Jesli dobrze matematycznie to rozgryzłem (pomijając małe zaokrąglenia ROUND) to czemu proces jednominutowy (Ust_poranek=1) nie trwa 1 minutę a około 170s?
Z góry dziękuję za odpowiedzi.