Страница 1 из 1

Atmega8A и асинхронный таймер

Добавлено: Сб июн 17, 2017 18:19:07
Stass48
Добрый вечер!
Пишу программу на Bascom.
Нужно сделать таймер, решил это сделать по-людски: подцепил на TOSC1 и TOSC2 часовой кварц. Сам контроллер тактирую от внутреннего источника на 8 МГц, таймер работает в асинхронном режиме. Смотрел и статьи, но что примечательно – даже помощь внутри самого Баскома, там есть готовый пример кода. Вот он:

Код: Выделить всё

Dim W As Byte

Config Timer2 = Timer , ASYNC = 1 , Prescale = 128
On TIMER2 Myisr

ENABLE INTERRUPTS
ENABLE TIMER2

DO

LOOP

MYISR:
'get here every second with a 32768 Hz xtal
RETURN

'You can read or write to the timer with the COUNTER2 or TIMER2 variable
W = Timer2
Timer2 = W
Также, на схемах рекомендуют корпус кварца садить на землю. Все сделал как надо. Включил – не работает. Отпаял кварц от корпуса – заработало! Но секунды тикают словно бешеные! Раза в три или четыре быстрее.
Менял кварц на другой – история та же. Некоторые кварцы вообще никак не работают, некоторые работают так, как я описал выше.
Что примечательно, когда-то паял RTC-модуль на микросхеме DS и садил корпус кварца на корпус. Все работало нормально и правильно.

Собственно вопрос. ЧТО ЗА ФИГНЯ? :)))

Добавлено after 1 hour 31 minute 50 seconds:
Апдейт!
Включил режим Full Swing Rail-to-Rail и секунды начали считаться нормально!
Но, посадил на землю корпус кварца и снова не работает.... Я в шоке!
Ну хоть понятно теперь, что проблема не в коде...

Добавлено after 27 minutes 50 seconds:
Самый последний апдейт! :wink:
Кароч.. Я как палец свой туду совал, то отломилась пайка на одной из ног кварца.
Впендюрил эту падлу по-нормальному! С корпусом на землю! Пашет, скотина! :)))

Мораль: ̶к̶о̶л̶ь̶ ̶е̶с̶т̶ь̶ ̶м̶е̶ж̶ ̶н̶о̶г̶.̶.̶.̶кхм.. Фьюз CKOPT вам поможет. :)))