BASCOM AVR в вопросах и ответах
Re: BASCOM AVR в вопросах и ответах
И какой из этого выход?
З.Ы. при начальном значении таймера: Timer1 = &H0BDF, считает точно вплоть до 25500 Гц, потом начинает врать. Думаю, это все же протеус "не тянет".
З.Ы. при начальном значении таймера: Timer1 = &H0BDF, считает точно вплоть до 25500 Гц, потом начинает врать. Думаю, это все же протеус "не тянет".
Цапу крутить надо!!! Ку или не ку?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Нет, так-то и хрен бы с ним, по совпадению проверил - все считает нормально. Но для индикации это очень плохо.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а):Нет, так-то и хрен бы с ним, по совпадению проверил - все считает нормально. Но для индикации это очень плохо.
И чем же это плохо?
Цапу крутить надо!!! Ку или не ку?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Да тем что пока оно там прыгает с дикой частотой в обработчик - индикация не работает. А если ее в INT1 принудительно разрешить то пропуски импульсов будут...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Выходит, надо искать другой подход. Допустим, включить таймер, принять пачку импульсов на входе внешнего прерывания (INT1), закончить прием, как только таймер переполнится, записать принятое значение в переменную, обработать ее (расписать по разрядам), а потом идти на индикацию, ... наверное так?
Цапу крутить надо!!! Ку или не ку?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Так импульсы-то все равно считать... Вот обработка внешнего прерывания все и сбивает. Это ведь не LCD где можно все расчитать и обновить. Тут надо постоянно разряды прогонять.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Ну так пусть индикация и топает себе по TIMER0 со старыми значениями частоты. Ей же ничего мешать не будет. Или по крайней мере можно погасить индикацию на время счета, допустим на 100 мс. Будет не сильно заметно. А расчет привязать к этому периоду.
Цапу крутить надо!!! Ку или не ку?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Так не только в этом дело... При большой частоте прерывания INT1 идут одно за другим. С дикой скоростью... В железе бы все это поглядеть, конечно...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Все, решено!
Сейчас уже поздно, завтра соберу макетку, только на 8 меге, так как под панельку проще. И все проверю. Если что, отпишусь.
Сейчас уже поздно, завтра соберу макетку, только на 8 меге, так как под панельку проще. И все проверю. Если что, отпишусь.
Цапу крутить надо!!! Ку или не ку?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
На высоких частотах без внешнего делителя в любом случае не обойтись... Я так думаю...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
По крайней мере до 1МГц должен без делителя работать, а выше можно делитель на 10 добавить, например какой-нибудь TTL - счетчик. Но это уже мелочи. Главное заставить его правильно работать до 1МГц! 
Цапу крутить надо!!! Ку или не ку?
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
A вот этот не пойдёт? Считает точно, я в железе на макетке делал, переводил на ЖК индикатор на 1820вг1
в архиве исходник, но было давно, туда ещё пытался ввести подсчёт периода.
Вообщем эт я учился, и пробывал. В железе на макетке работал.
в архиве исходник, но было давно, туда ещё пытался ввести подсчёт периода.
Вообщем эт я учился, и пробывал. В железе на макетке работал.
- Вложения
-
- Частотомер на ЖК.rar
- (1.74 КБ) 242 скачивания
Все делают ошибки, только мудрецы - новые, а дураки - старые.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
kip96, спасибо. Так у меня и вышло примерно, когда перешел на подсчет импульсов таймером. Только еще до кучи переполнения не задействовал, надо попробовать.
А Вы какие частоты меряли им?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
Да я соб-но особо не мерял ни чего. Генератор у меня - как-то в "РАДИО" публиковали ГКЧ звуковой частоты, до 50КГц.
А частотомер у меня - частотомер А. Денисова или, Корабельникова
Мне кажется на пике проще.
А частотомер у меня - частотомер А. Денисова или, Корабельникова
Мне кажется на пике проще.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
На пике определенно проще, но на AVR тоже интересно поковырять.
Так-то с подсчетом проблем нет, только в железе надо посмотреть как на высоких частотах индикация вести себя будет. С флагом лучше выходит, по крайней мере разгружаются прерывания и индикация молотит нормально... Но это уже не мне проверять. 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Братцы-котоведы! Проконсультируйте вот по какому вопросу. Пытался разобраться в проекте очередных часов, в котором встретил такие инструкции:
В нем задействован часовой кварц, но при этом контроллер работает на внутреннем генераторе 1 МГц. Объясните вкратце, как это работает!
Код: Выделить всё
' Программа электронных часов "AVR-WATCH"
' Микроконтроллер типа ATMEGA8
' Fuses:
' CKSEL3...CKSEL0 = 1001 - низкочастотный кварцевый резонатор
............
' Используемый ресурсы микроконтроллера:
' Генератор RC - внутренний 1 МГц, а к TOSC1 and TOSC2 подключен кристалл 32768 ГцВ нем задействован часовой кварц, но при этом контроллер работает на внутреннем генераторе 1 МГц. Объясните вкратце, как это работает!
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Выводы TOSC1 и TOSC2 используются в данном случае для таймера Т2, работающего в асинхронном режиме. То бишь этот таймер молотит сам по себе, со своей частотой, задаваемой кварцевым резонатором 32768 Гц. Удобно для создания часов реального времени.
Впрочем, можно и просто сконфигурировать таймер на подсчет внешних импульсов на этом кварце.
Впрочем, можно и просто сконфигурировать таймер на подсчет внешних импульсов на этом кварце.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Получается, что второй таймер работает как счетчик. Но ведь фьюзы настроены на кварц низкой частоты, и как получается, что контроллер продолжает работать на внутреннем генераторе в 1 МГц? (аналогичная задача на softclock по адресу http://bascom.at.ua/publ/softovye_chasy ... e/1-1-0-12)
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Для асинхронного режима таймера не надо конфигурировать фьюзы. Фьюзы тактуют сам МК. В МК есть такой регистр - ASSR. Третий бит этого регистра (AS2) как раз отвечает за то, какой сигнал поступает на вход предделителя таймера. Если там 0 - то на вход предделителя поступает сигнал от внутреннего генератора, если 1 - то таймер считает независимо, забирая сигнал с кварца на выводах TOSC1 и TOSC2. А сам МК может быть настроен на любую частоту. Все это касается таймера, работающего в асинхронном режиме (для меги8 это Т2). Включить этот режим можно записав 1 напрямую в регистр, и работать с таймером как обычно.
Но в баскоме есть такая замечательная штука как Config Clock = Soft. Она не только выставляет нужный бит в ASSR, но и автоматом заводит переменные _sec , _min , _hour, _day , _month , _year.
Отсюда не совсем понятно, зачем в софтовых часах по ссылке, строка
Он ничего не считает, ибо софтовые часы работают с асинхронным таймером, а это Т2. И дополнительно его конфигурировать не надо. А в той строке настроен подсчет импульсов на выводе T1.
Код: Выделить всё
ASSR.3 = 1
Но в баскоме есть такая замечательная штука как Config Clock = Soft. Она не только выставляет нужный бит в ASSR, но и автоматом заводит переменные _sec , _min , _hour, _day , _month , _year.
Отсюда не совсем понятно, зачем в софтовых часах по ссылке, строка
Код: Выделить всё
Config Timer1 = Counter , Edge = Falling , Prescale = 1
Он ничего не считает, ибо софтовые часы работают с асинхронным таймером, а это Т2. И дополнительно его конфигурировать не надо. А в той строке настроен подсчет импульсов на выводе T1.

"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Спасибо, немного понял. Конечно, лучше всего учиться на уже готовых кодах, но они иногда вызывают больше вопросов, чем ответов.