понял. вычитываем, накладываем, записываем назад. интересно, а почему он не в sbi закомпилил, ведь команд столько же, да и регистр занимать не надо. Добавлено: Sun Mar 19, 2017 10:58 pm |
SilverRay писал(а): Не понял, откуда три команды, когда одна -- SBI xx, 0x7 ? Хуй его знает, у кодвижена всегда прошивка получается больше, чем скомпиленная винАВРом. Добавлено: Sun Mar 19, 2017 11:01 pm |
Думаю, нефига контроллеру не будет. С такой длительностью и скважностью. Главное, что по питанию не глючит. Добавлено: Sun Mar 19, 2017 11:05 pm |
Не, все правильно, я тупанул -- загадочность АВРовской системы команд в том, что команды SBI/CBI работают с битами, а команды SBR/CBR -- с масками. Так что увы, три команды. Добавлено: Sun Mar 19, 2017 11:05 pm |
Сильверрей, а почему одна? ведь SBI это сетбит! а мы тут байт накладываем, в котором три бита единички UPD ухтыжебать в какую конструкцию оно скомпилилось... :D увидел апдейт поста Добавлено: Sun Mar 19, 2017 11:06 pm |
Расслабься Коль, АВР это спокойно перенесет Добавлено: Mon Mar 20, 2017 12:40 am |
кстати кто там говорил что биться за оптимизацию кода не надо!? посмотрел размер текущей прошивки - 6,5К блеа. петеряхнул код, подужарил на 500байт. итого осталось 2К свободного места. что довольно мало, а впихнуть еще много чего хочется. и оперативы осталось байт 50 Добавлено: Mon Mar 20, 2017 1:01 am |
Народ, Atmega8L-8PU заведется от 12МГц кварца или нужно 16PU ставить? Добавлено: Sun Mar 26, 2017 4:53 pm |
заводилась вроде. я так понял различие у них в основном по внутреннему rc генератору, с внешкой вроде как одинаково работают. я их конечно мало встречал, но все что видел запускал на макс штатной частоте без оглядки на индексы Добавлено: Sun Mar 26, 2017 5:02 pm |
Где-то встречалась информация, при таком разгоне они запускаются, но не полностью и неадекватно - например, могут глючить 16-разрядные таймеры, команды с автоинкрементной адресацией, прерывания, умножение и еще что угодно... Так что лучше ненужно. Добавлено: Sun Mar 26, 2017 8:36 pm |
Ну нафиг 8, поставил 8А, тем более она дешевле. Добавлено: Sun Mar 26, 2017 8:46 pm |
Для таких экспериментов, наверное, лучше питающее 5-5,4 обеспечить. Хотя, еще лучше юзать вещи по назначению Добавлено: Mon Mar 27, 2017 8:03 am |
Доброго вечера. Прошу помощи, в программировании я не силен "совсем". Нужен таймер и отдельно реверсивный счетчик нажатий. Статью про таймер нашел (с исходником), но он с авто запуском через три секунды, а мне надо что бы старт происходил с кнопки. Про счетчик вообще ничего похожего нет. Но как я понял программу этого таймера надо только убрать авто запуск, остальное я вроде исправил ( на сколько я понимал) не могу вставить исходник. Добавлено: Mon Mar 27, 2017 5:38 pm
|
Какую задачу должен выполнять МК? Добавлено: Mon Mar 27, 2017 5:50 pm |
Первый МК должен отсчитывать заданное время и выводить его семи сегментный четырех разрядный индикатор. Второй МК должен считать нажатие на кнопки и выводить показание также на семи сегментный четырех разрядный индикатор. во вложении исходник и то убожество которое получилось у меня. Добавлено: Mon Mar 27, 2017 6:24 pm |
Все равно низуя не понятно. Кем или чем это время задается? Какие показания должен выводить второй мк? Добавлено: Mon Mar 27, 2017 6:53 pm |
Первому мк идет управление с пяти кнопок "+1мин"; "+5мин"; "+10мин"; "старт"; "сброс". мк отсчитывает время до 0 и подает звуковой сигнал. время показывается на семи сегментных индикаторах. Второй мк управляется тремя кнопками "+1"; "-1"; "сброс". выводит на семи сегментный индикатор число от 0 до 999. Нашел другой исходник который смог исправить под второй вариант устройства. Теперь возник вопрос есть ли разница в точности часов смоделированных в протеусе и собранных в железе? Во вложении проект протеуса. Добавлено: Thu Mar 30, 2017 8:36 am |
Точность определяется кварцем.камень эмулируется такт-в-такт. Разницы быть не должно Добавлено: Thu Mar 30, 2017 12:22 pm |
Спасибо. Но у меня при изменении частоты в протеусе меняется только скорость динамической индикации, а время также отстает примерно на 12 секунд за минуту. Буду пробовать собирать в железе. посмотрим что будет. Добавлено: Thu Mar 30, 2017 3:44 pm проект ПРОТЕУС |
не могу прочитать исходник поскольку нет протеуса сейчас под рукой, но осмелюсь предположить что таймер сделан на задержках, тобишь на вызовах типа delay_ms() которые компилятором автоматически пересчитываются под частоту камня (расчитвается исходя из значения дефа F_CPU) и при изменении частоты в протеусе при запуске происходит перекомпиляция под новую частоту, соответвенно частота хода останется плюсминус такаяже 12сек в минуту это просто конская погрешность, безкварцевая тинька у меня дает где-то +-1минуту в сутки. треба заводить аппаратные таймеры, чтобы они счетчик секунд инкрементировали в своем прерывании, а потом с ним уже работаем в основном теле как хотим Добавлено: Thu Mar 30, 2017 10:13 pm |
Во вкладке исходники и схема этого таймера. Но я не могу скомпилировать исходники даже без изменений, atmel studio выдает 2 ошибки: Error 1attempt to use poisoned "SIG_OVERFLOW0" Error 2 attempt to use poisoned "SIG_OVERFLOW2" Вот код где находится первая ошибка[list=]
Как я понял из ответов "гугла" (моего 3 часового обучения программированию) команду
Судя по коду здесь задействованы два таймера одновременно. Внутренний гениратор на 1Мгц и внешний кварцевый на 32768. Что делать дальше не понимаю!!!!!!!! Это мой первый опыт связанный с программированием. Добавлено: Thu Mar 30, 2017 11:40 pm |
Согласен с Николаем, онли аппаратные таймеры нужно включать, иначе это мазохизм. Например, я до сих пор не знаю что делает МК, когда выполняет команду delay. P.S. подсказал бы, да только сам ассемблер учу. Добавлено: Fri Mar 31, 2017 8:43 am |
Shad писал(а): delay Ебашит в пустом цикле заданное количество раз. ivan_1989 писал(а): Это мой первый опыт связанный с программированием. Тебе надо научится программировать или просто этот прибор сделать? Если последнее, то поставь CVAVR, в нем есть кодогенератор. Добавлено: Fri Mar 31, 2017 8:58 am |
Одно другому не мешает. Думаю что это не последняя поделка на МК. Поэтому буду учится дальше. Спасибо а подсказку с CVAVR, посмотрим что за зверь такой. Добавлено: Fri Mar 31, 2017 9:53 am |
Behram писал(а): Ебашит в пустом цикле заданное количество раз. Поэтому и получается пустая трата сил МК. Избавляться от этой команды надо и использовать в крайних случаях. Добавлено: Fri Mar 31, 2017 11:01 am |
Лицензионное соглашение (c)Flyback.org.ru Российское общество любителей высоких напряжений. Использование материалов с данного сайта и форума возможно только с разрешения администрации. |