Jeśli masz zewnętrzny kwarc, to Fusebit A987 ustawiłeś właściwie.
A propos opóźnień. Dlaczego używasz Waitms z taką dużą wartością? Przecież istenije komenda Wait której czas podaje się w sekundach...
At90s2313 i attiny2313 problemy z opóźnieniami
No tak ale zmiana z waitms na wait nic nie dała (bo co miała dać poza zmianą formy zapisu)...ZbeeGin pisze:Jeśli masz zewnętrzny kwarc, to Fusebit A987 ustawiłeś właściwie.
A propos opóźnień. Dlaczego używasz Waitms z taką dużą wartością? Przecież istenije komenda Wait której czas podaje się w sekundach...
Może procesor nie korzysta z zewnętrznego kwarcu ? podstawka i układ połączeń jest od AT90S2313 i jak tam był to wszystko działało a teraz z ATTiny coś jest nie tak z tymi czasami...czy trzeba coś zmienić w układzie połączeń i tu jest przyczyna problemu
A może inaczej ... jeżeli tak mi nie działa to ile należy wpisać w programie, aby czekał 2 sekundy przy wykorzystaiu wewnętrznego licznika - czyli ustawiając Fusebit A987 na inną opcję ?
Podzielić przez 8 ?[/code]
-
ZbeeGin
Prawdopodobne, ale można to łatwo sprawdzić. Odłącz kwarc i zobacz czy programator skomunikuje się z porcesorem. Jeśli procesor zostanie wykryty to znaczy, że pracuje na wewnętrznym generatorze (Internal Oscillator). Jeśli nie, to Fusebit A987 jest ustawiony na właściwy sposób taktowania.mariachi pisze:Może procesor nie korzysta z zewnętrznego kwarcu?
Fusebitami A987 możesz sobie ustawić czy procesor ma wogóle korzystać z wyprowadzeń XTAL1, XTAL2 w celu taktowania przez zewnętrzny rezonator kwarcowy. Tutaj o częstotliwości taktowania decyduje sam kwarc - a ściślej jego czestotliwość rezonansowa. Jest jednak małe ale - patrz nota katalogowa, str. 26. - istnieje podział na kilka zakresów pracy kwarcu. Np. ustawienie 1111 daje zakres od 8MHz do max. jaką obsługuje układ (10MHz - 10PI, 20MHz - 20PI). Aby być w zgodzie z "prawdą" (wspomniany datasheetmariachi pisze:A może inaczej ... jeżeli tak mi nie działa to ile należy wpisać w programie, aby czekał 2 sekundy przy wykorzystaiu wewnętrznego licznika - czyli ustawiając Fusebit A987 na inną opcję ?
Jeśli wpisując $crystal = 4000000 uzyskujesz czasy dwa razy większe to wpisz $crystal = 2000000 (dwa razy mniej) i zobacz jaki był tego efekt. Jeśli nic to nie zmieniło to wpisz $crystal = 1000000, i jeśli tym razem czasy są dobre to procesor może pracować wg domyślnych ustawień fabrycznych - zatem należałoby sprawdzić faktyczny stan fusebitów. W Bascomie : Lock and Fuse Bits i tam Refresh.
- mariusz_edw
- Użytkownik
- Posty: 307
- Rejestracja: 22 lip 2005, 13:02
- Lokalizacja: Polanica Zdrój
- Kontakt:
Witam.
Info wstępne, proc. ATiny2313, programator COMBO3
Mam FUSE bit skonfigurowany na oscylator zewnętrzny ext. osc., program skompilowany z deklaracją $crystal na 4MHz, w układzie jest wstawiony kwarc 4MHz, program startuje, ale wszystko działa ze 4x wolniej.
Zmieniłem fuse bit na XTAL 3-8MHz, później XTAL 0,9-3MHz i XTAL 0,4-0,9MHz, poprawiało to krokowo sprawę, ale program dalej działa conajmniej ze 2x wolniej.

Mam pytanie - czy jak wywalę zewnętrzny rezonator kwarcowy, i ustawię fuse bit na int. RC 4MHz, to wszystko będzie chodzić jak trzeba, włącznie z Watch Dogiem i generowaniem kodów DTMF?
==========================
edycja
==========================
I znowu sam rozwiązałem problem.
Trzeba zaznczyć opcję, jak na rysunku:

Info wstępne, proc. ATiny2313, programator COMBO3
Mam FUSE bit skonfigurowany na oscylator zewnętrzny ext. osc., program skompilowany z deklaracją $crystal na 4MHz, w układzie jest wstawiony kwarc 4MHz, program startuje, ale wszystko działa ze 4x wolniej.
Zmieniłem fuse bit na XTAL 3-8MHz, później XTAL 0,9-3MHz i XTAL 0,4-0,9MHz, poprawiało to krokowo sprawę, ale program dalej działa conajmniej ze 2x wolniej.

Mam pytanie - czy jak wywalę zewnętrzny rezonator kwarcowy, i ustawię fuse bit na int. RC 4MHz, to wszystko będzie chodzić jak trzeba, włącznie z Watch Dogiem i generowaniem kodów DTMF?
==========================
edycja
==========================
I znowu sam rozwiązałem problem.
Trzeba zaznczyć opcję, jak na rysunku:

Zamykam temat
Przepraszam że tak długo niepisałem - problem ten występował z powodu dzielenia częstotliwości oscylatora przez 8 - dzięki wszystkim