Szkoda.
Wprawdzie potrzebowałem 24MHz i ucieszyłem się że ten na 20MHz chodzi i na 24MHz. Ale liczyłem na to że jak zdobędę ten na 24MHz to łyknie ze 30MHz. Szczególnie że okazało się że 24MHz mi nie wystarczy. Wczoraj przypadkiem odkryłem w datasheecie dodatkowe rozkazy (muls, mulsu, fmul, fmuls, fmulsu, movx, lpm, Rx, Z, lpm, Rx, Z+).
Pomoc BASCOMa nic o nich nie wspomina. A na niej sie opierałem do tej pory. Dzięki tym instrukcjom znacznie uprościłem program ale i tak musi chodzić na 26MHz.
Moje egzemplarze ATMega88 spokojnie łykały 28MHz przy 5V i nie wykazywały żadnych usterek podczas pracy.
BASCOM nie potrafi konfigurować Timerów w ATMega88! Dotyczy to na przykład TIMERa0. BASCOM stawia kod jak dla ATMega8, czyli próbuje modyfikować rejestr TCCR0. Tylko że ATMega88 nie ma takiego rejestru, tylko TCCR0A i TCCR0B i BASCOM zamiast modyfikować rejestr TCCR0 modyfikuje…SREG!
Dobrze że BASCOM przynajmniej wie jakie są adresy tych rejestrów i przynajmniej można samemu skonfigurować Timer0 pisząc to w assemblerze. Jak by nie wiedział to by trzeba było adresy wpisywać.
A swojego czasu zastanawiałem się jak kompilator radzi sobie z różnymi rodzajami procesorów. I teraz doszedłem do wniosku że po prostu sobie nie radzi.
Ma listę rejestrów i ich adresy w plikach *.def, ale musiałby także wiedzieć jak z nich korzystać. Przecież niektóre procesory nie mają rozkazu mnożenia i dla nich kompilator powinien wstawiać kod mnożący programowo.
Albo na przykład powinien wykorzystywać sprzętowy interfejs 2wire, a jak go nie ma to nie.
Dlaczego w 2007 roku wersja AVR Studio też z 2007 roku nie umie programować procesora ATMega88? Chodzi mi o ustawianie bezpieczników. AVR Prog nie słyszał o takim procesorze. Próbowałem ustawić bezpieczniki ustawiając typ procesora na ATMega8 i zablokowałem sobie 2 procesory. Na szczęście po dokładnym przeanalizowaniu datasheetów procesorów ATMega8 i ATMega88 doszedłem do wniosku, że bitu które ustawiłem, które miały włączyć tryb pracy generatora na „max xtal freguency”, dla procesora ATMega88 oznaczają tryb „low frequency crystal oscillator” więc procesory jeszcze da się uratować programując je przez ISP, trzeba tylko będzie podłączyć kwarca ze 30…500kHz i w programatorze ustawić „Low SCK”.
Brak rejestrów, brak typów procesorów, błędy przy kompilacji to standard.
Szkoda że programator AVR910 nadal nie działa z BASCOMem. BASCOM słyszał o procesorze ATMega88, i nim mógłbym go zaprogramować. Niestety nie słyszał o poprawnej pracy z programatorem USB ;(.
Wniosek: Mam 2 kompilatory, oba coś potrafią. Oba są fajne. Ale jeżeli chodzi o programy na ATMega88 i o programowanie ATMega88 to obydwa g…. potrafią ;(.