Hej,
wprowadziłem proponowane zmiany, pokombinowałem, przepisałem i upiększyłem kod, wyszło coś takiego:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wszystko pięknie śmiga. Niemniej jednak mam kilka pytań. Pierwsze z nich to to, że stosując kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
(przy pierwszym włączeniu po resecie procka było ok) do wyłączenia/ponownego włączenia świecenia musiałem wykorzystać dwa kliknięcia. Przy wyłączaniu najpierw procek przechodził w tryb "tego minimalnego świecenia" - tj. OCR1A=0;
Po zamianie średników na przecinki program działa prawidłowo:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wychodziłoby na to, że program wykonuje jakoś po kolei te polecenia a nie wszystkie 3 naraz tj. ustawia COM1A0,1 na 00 lub 01 dopiero po kolejnym długim kliknięciu, przy zastosowania średnika. Wstawienie przecinka rozwiązało sprawę.
(poszukałem odpowiedzi tutaj:
http://stackoverflow.com/questions/2087 ... in-c-and-c ale jeszcze średnio łapię)
A drugie pytanie, może nieco na wyrost, tzn. jeszcze nie zagłębiłem się w ten dział wiedzy (książkę planuję dopiero kupić więc posiłkuję się wiedzą z internetu, ale kupię, bo z każdym filmikiem utwierdzam się w przekonaniu, że jest baaardzo przydatna) to zużycie pamięci - tj. czy rejestry są zapisywane w EEPROM i czy takie cykliczne męczenie TCCR1A może nam rozwalić procka? niby te 10k-100k cykli to sporo, ale ....
A druga sprawa to taktowanie procka. Teraz pracuję na 1MHz. Docelowo maksymalne świecenie układu będzie dla stanu niskiego na wyjściu PB1 (w sumie mogę już teraz odwrócić na inverting mode i podpiąć diodę do VCC i PB1, czyli dla OCR1A=255 non stop stan niski, dioda świeci maksymalnie) czyli procek dla maksymalnego świecenia będzie pobierał mniej mocy. Żeby jeszcze obniżyć pobór energii przez procka chciałbym obniżyć jego taktowanie, rozumiem, że do tego trzeba zastosować już zewnętrzny oscylator i przez fusbity nie da się obniżyć taktowania poniżej 1MHz. Zdaję sobie również sprawę, że muszę brać pod uwagę częstotliwość PWM na wyjściu by nie było efektu strobo
Dzięki za dotychczasową pomoc
EDIT:
Cytuj:
Żeby było całkiem ciemno wybierz tryb inverting mode. gdzie Compare match zapala diodę ale dla OCR1A=TOP Compare match jest ignorowane więc wyjście nigdy nie zostanie ustawione w stan wysoki. Tak przynajmniej mi się wydaje
Jeszcze sprawdzę to rozwiązanie, rozumiem, że dla 255 nie będzie świecenia, a dla 0 będzie max.