Atmega8: простенький секундомер

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Atmega8: простенький секундомер

Сообщение Alexeyslav »

Успевают копировать... ну а на самом деле, когда дают задание до этого времени у вас уже должен быть минимальный набор знаний для его выполнения. Если подойти к заданию вдумчиво, то все получится. Тем более что выполняя одно задание у вас появляется опыт для выполнения других аналогичных.

И вообще, если в задании не указано в каком виде выводить время секундомера - то вывести можно в ДВОИЧНОЙ форме, не заморачиваясь с динамической индикацией и сегментными индикаторами.
Реклама
Иринка
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Re: Atmega8: простенький секундомер

Сообщение Иринка »

Alexeyslav, теоретически должны быть эти знания, а практически их нет, потому что когда лекции диктуют по книге никаких знаний быть не может, книгу я и сама могу прочитать, но ничего там также не пойму, а по заданию должен быть семисегментный индикатор, поэтому придется заморачиваться.
Реклама
Аватара пользователя
O-LED
Мудрый кот
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57
Контактная информация:

Re: Atmega8: простенький секундомер

Сообщение O-LED »

Иринка писал(а):потому что когда лекции диктуют по книге никаких знаний быть не может, книгу я и сама могу прочитать, но ничего там также не пойму
Банальное оправдание лени.......

Вот тут несколько секундомеров есть. читать тему до конца - не ленится! http://radiokot.ru/forum/viewtopic.php?p=478747#p478747
Последний раз редактировалось O-LED Вт апр 24, 2012 00:24:12, всего редактировалось 2 раза.
KIT
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Atmega8: простенький секундомер

Сообщение ILYAUL »

Вот Вам рыба - разбирайтесь. Написана на том , что было под рукой и особо не заморачиваясь с оптимизацией кода .Outi outr inr - это макросы , как они действуют найдёте в соответствующем файле и литературе . Написано в STUDIO.
Программа просто считает секунды - без вычисления минут. PDF семисегментника и платформы приложены.
Удачи!
Вложения
second.rar
(681 КБ) 344 скачивания
Реклама
Эиком - электронные компоненты и радиодетали
Иринка
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Re: Atmega8: простенький секундомер

Сообщение Иринка »

ILYAUL, программа для Atmega128, но не Atmega8 же, такое вообще не пойдет, совсем другой микроконтроллер.
Реклама
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Atmega8: простенький секундомер

Сообщение ILYAUL »

Иринка писал(а):ILYAUL, программа для Atmega128, но не Atmega8 же, такое вообще не пойдет, совсем другой микроконтроллер.
Ошибаетесь
Реклама
Иринка
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Re: Atmega8: простенький секундомер

Сообщение Иринка »

O-LED, прочитала тему, но для Atmega8 нет ничего, какие-то tini, впервые вижу такой микроконтроллер, конец темы смотрела уже ранее, когда меня направили туда посмотреть примерную схему, теперь прочитала всю тему, но ни одной подходящей проги под мой микроконтроллер нет.
Иринка
Встал на лапы
Сообщения: 85
Зарегистрирован: Вт мар 27, 2012 16:07:25

Re: Atmega8: простенький секундомер

Сообщение Иринка »

ILYAUL, в чем я ошибаюсь? Разве она не для Atmega128? Это же другой микроконтроллер, а мне нужен именно Atmega8, но не 128.
Аватара пользователя
bensaratov
Поставщик валерьянки для Кота
Сообщения: 2060
Зарегистрирован: Ср дек 29, 2010 00:08:44
Откуда: Москва
Контактная информация:

Re: Atmega8: простенький секундомер

Сообщение bensaratov »

Ира вот это почитай сразу все станет на свои места
Вложения
DOC000141313.pdf
(50.93 КБ) 330 скачиваний
ни что в этой жизни не вечно!!!
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Atmega8: простенький секундомер

Сообщение ploop »

ILYAUL тебе же выложил.

Tiny, mega - это всё разные семейства одной архитектуры - AVR. Atmega8 от ATMega128 отличается только объёмом памяти и другими вещами, которые тут не используются. В остальном это одно и то же.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Atmega8: простенький секундомер

Сообщение Engineer_Keen »

Да и кто мешает поменять в начале кода m128def.inc на m8def.inc
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Atmega8: простенький секундомер

Сообщение ILYAUL »

Всем здравствуйте!
И с праздником!
Сидя на даче и пока шёл дождь , решил подправить код секундомера.
И теперь не врублюсь никак , почему при переходе частоты обновления динамической индикации с 85гц на 56гц секундомер начинает пропускать 1 секунду из 5 . На 85- всё нормально.
Вложения
second.rar
(10.92 КБ) 254 скачивания
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Atmega8: простенький секундомер

Сообщение Alexeyslav »

Пропускает счет секунд, или пропускает индикацию? Ну вроде как показывает 1, 2, 2 а потом сразу 4 но время само по себе идет точно?
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Atmega8: простенький секундомер

Сообщение ILYAUL »

Счёт не пропускает - т.е. 1 2 3 4 5 ..... 20 21 и т.д. Но даже на глаз видно что медленне работает . И вкл. компьютерный секундомер видно что на 5 сек он показывает 4 на 10 сек 8 и т.д. А при 85 всё тютелька в тютельку . Там в коде есть , где меняю значение . И оно не скрыто под прерыванием . Да иобработчики прерывний одни из самых коротких из возможных - можно ещё и запоминания SREG убрать без потерь.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Atmega8: простенький секундомер

Сообщение Alexeyslav »

Так ведь к этой частоте и привязан счет секунд! Скорость у тебя изменилась на 3/4 от номинала, соотношение 65 к 85 тоже подозрительно близку к 3/4 ... это и навело на такую простую мысль.

Тебе надо пересчитать коэфициент счета, он должен быть где-то в обработчике динамической индикации(возможно это прерывание таймера по переполнению или сравнению) и скорей всего равен 85 или кратному ему значению(170?).
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Atmega8: простенький секундомер

Сообщение ILYAUL »

Два обработчика прерываний - один по переполнению - секунды, второй по сравнению - динамика.
Timer работает в режиме - Normal (Free timer) Прерывания одно от другого не зависяще и всегда считает от 0 до FF. Каждое чётное число TCNT - прерывание динамики для 85 гц или каждое 3-тье для 56 . В первом случае прерывание секунд совпадает с прерыванием динамики , но сбоя нет и так каждый раз . Во- втором случае , только каждое второе прерывание секунд совпадёт с динамикой и идёт сбой. Прескалер Timerа настроен на деление до 512 гц соответствено частота динамики или 256/3 или 170/3. Не врубаюсь где засада.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Atmega8: простенький секундомер

Сообщение Alexeyslav »

Если обработка динамической индикации идет в прерывании и занимает в сумме хотябы чуть больше 250 тактов - возможен пропуск прерывания...или как-то так.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Atmega8: простенький секундомер

Сообщение ILYAUL »

Alexeyslav писал(а):Если обработка динамической индикации идет в прерывании и занимает в сумме хотябы чуть больше 250 тактов - возможен пропуск прерывания...или как-то так.
Есть же код выше . В прерываниях устанавливаются только флаги , что сие событие произошло.
И всё.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Atmega8: простенький секундомер

Сообщение Alexeyslav »

А каким образом было сформировано 65Гц для динамической индикации? Может проверяется условия кратности 3 и осуществляется выход из прерывания до того как будет произведена проверка на четность для подсчета секунд? Или признак установленный обрабатывается один который первым был проверен, а обнуляются оба сразу.

вот в исходнике накопал "cbr Flags,1<<fl_Second" что-то мне подсказывает, что это неправильное применение инструкции. Вторым аргументом идет НОМЕР БИТА, а вы подставляете туда маску этого бита. Компилятор может и не обнаружить этого прикола, а проблемы будут.

Аналогично надо исправить cbr/sbr инструкции по всему тексту программы, может в этом и была причина.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Atmega8: простенький секундомер

Сообщение ILYAUL »

Команды установки или сброса битов регистра sbr/cbr устанавливают или сбрасывают тот бит или биты которые Вы указали не трогая то что не нужно. Собственно это "родственики" команды eor Сами биты описаны в *.inc файле
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»