Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Помогите начинающему по ATmega8515

Непрочитано 28.12.2011, 20:29  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Pinco, Вы знатный спорщик и отстаиваете свою точку зрения до конца - это похвально. Но кнопка может быть с разным функциями по нажатию и отпусканию.
Пример. Нажимаете кнопку "Параметр", на индикатор выводится какое-то значение параметра №1. Пока удерживаете эту кнопку, другими кнопками ("больше", "меньше") можно изменять значение. По отпусканию кнопки "Параметр" происходит запись в EEPROM. По следующему нажатию на кнопку "Параметр" на индикатор выводится параметр №2 и т.д. Я надеюсь, почему нужно отсекать дребезг и до и после объяснять не надо.

P.S. А по поводу мыши попробуйте правую кнопку в текстовом редакторе.
Реклама:
alvadep вне форума  
Непрочитано 28.12.2011, 21:39  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

2 pinco

http://www.piclist.com/techref/micro...bounceK8LH.htm

st_1 вне форума  
Непрочитано 28.12.2011, 21:53  
!nekromant!
Частый гость
 
Аватар для !nekromant!
 
Регистрация: 19.12.2011
Адрес: Россия г.Брянск
Сообщений: 38
Сказал спасибо: 5
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
!nekromant! на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

От споров на чем лучше писать под МК голова пухнет. Я так понимаю, что сравнивать Си и АСМе тоже самое, что сравнивать топор и скальпель. Топором можно нарубить дров, вырубить шикарную статую, но никогда не сможешь прооперировать человека, тоже самое касается и скальпеля им можно прооперировать человека, вырезать статую но не получится нарубить дров. И помимо этого результат зависит не только от самого инструмента но и от того кто им орудует(это как дать хирургу топор, а дровосеку скальпель). В общем смысл в том, что для каждой задачи и поставленных условий хорош свой инструмент.

Или я не прав? Я только начинаю изучение и не знаком еще ни с АСМе ни с Си, мой вывод сложился на основании ваших дискуссий.
!nekromant! вне форума  
Непрочитано 28.12.2011, 22:12  
roma9112
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
roma9112 на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от pinco Посмотреть сообщение
Посмотрел прогу от DAVE_ELEKTRIK.(ссылка в постах выше была )
Первое замечание по проге - подпрограммы ну надо же располагать ПОСЛЕ инициализации и тела основной программы , ну сколько же раз говорили - а так сейчас получается все "задом наперед"
.
Pinco, Ваши мысли иной раз меня направляли в нужное русло, Но в этом случая, я уже убедился, программист лично для себя пишет обработку подпрограмм(по тексту) в нужном именно ему месте, обозначив адрес вектора прерывания(т.е. как он больше воспринимает). А про остальное , наверное согласен, т.е. прерывания. Чуток познав МК51 я немного узнал регистр приоритетов прерываний, а в АВР пока думаю, что их приоритет идет в порядке адресов векторов. Кстати DAVE зря побаивается использовать аппаратные прерывания - это же милое дело!

Последний раз редактировалось roma9112; 28.12.2011 в 22:15.
roma9112 вне форума  
Непрочитано 28.12.2011, 22:38  
DAVE_ELEKTRIK
Прописка
 
Аватар для DAVE_ELEKTRIK
 
Регистрация: 18.10.2010
Адрес: Planet Earth )
Сообщений: 120
Сказал спасибо: 14
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
DAVE_ELEKTRIK на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от roma9112 Посмотреть сообщение
Кстати DAVE зря побаивается использовать аппаратные прерывания - это же милое дело!
Да я не боюсь этих прерываний, я боюсь сложных алгоритмов!
А именно где надо всю периферию задействовать, в нужном месте какую команду лучше использовать - ASM. Не художник я пока этих алгоритмов! Вот сижу и по 10 раз одну и тоже главу перечитываю, может где то смысл потерял, или что то пропустил в книге!
__________________
Мозги кипят, ядрить твою валентность!!! Пойду закладывать остальные ингредиенты...

Последний раз редактировалось DAVE_ELEKTRIK; 28.12.2011 в 23:51.
DAVE_ELEKTRIK вне форума  
Непрочитано 28.12.2011, 22:48  
pinco
Гражданин KAZUS.RUN
 
Регистрация: 04.04.2007
Сообщений: 937
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от roma9112 Посмотреть сообщение
Pinco, Ваши мысли иной раз меня направляли в нужное русло, Но в этом случая, я уже убедился, программист лично для себя пишет обработку подпрограмм(по тексту) в нужном именно ему месте, обозначив адрес вектора прерывания(т.е. как он больше воспринимает). А про остальное , наверное согласен, т.е. прерывания. Чуток познав МК51 я немного узнал регистр приоритетов прерываний, а в АВР пока думаю, что их приоритет идет в порядке адресов векторов. Кстати DAVE зря побаивается использовать аппаратные прерывания - это же милое дело!
Спасибо , стараюсь говорить о том что точно знаю .
А вот обработку подпрограмм запускать еще до инициализации - никто так не пишет , пока до конца не инициализирован контроллер .Проинициировали все там в нем , выставили нужные условия начальные для прерываний , и пусть даже потом эти условия сами могут быть изменены , но это именно потом ,когда все сделали правильно - вот тогда и пишите саму обработку или как там хотите , но все же лучше как полагается писать - чтобы правильно срабатывало .Невозможно определять условия для прерывания в самом уже случившемся прерывании - оно-то уже произошло , и по каким-то умолчальным условиям ,другим , и от измены условий в текущем прерывании все это может вступить в силу только в следующем прерывании , но не в этом же текущем .И вектор вектором но тот кусок обработчика для этого вектора не должен проигрываться и срабатывать прежде инициализации ,а посему и располагаться должен не перед инициализацией полной а именно ПОСЛЕ нее .А так как вниз по проге должна быть основная прога то этот кусок обработчика располагают после текста основной проги ,чтобы контроллер зря не выполнил этот Ваш кусок с подпрограммой обработчика просто потому что он располагается по ходу текста до основной проги , и независимо ,от того было там прерывание или нет ,паразитно это выполнил при включении .Надеюсь что в основном понятно обьяснил .
__________________
Короче асма кода нет !
pinco вне форума  
Непрочитано 28.12.2011, 23:14  
DAVE_ELEKTRIK
Прописка
 
Аватар для DAVE_ELEKTRIK
 
Регистрация: 18.10.2010
Адрес: Planet Earth )
Сообщений: 120
Сказал спасибо: 14
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
DAVE_ELEKTRIK на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от pinco Посмотреть сообщение
Первое замечание по проге - подпрограммы ну надо же располагать ПОСЛЕ инициализации и тела основной программы , ну сколько же раз говорили - а так сейчас получается все "задом наперед" - пока по проге контроллер добирается до основной проги после включения - ему надо-не надо приходится бестолково выполнять и все что в подпрограммах ,а он еще даже и сам не до конца в этот момент проинициализирован ! - а там еще и reti есть у подпрограмм - и куда там он будет возвращаться если он даже не дошел до начала тела основной программы (хоть и короткой , две строчки там всего , но все же)
Почему Вы говорите - "пока по проге контроллер добирается до основной проги после включения" и все это выше написанное...? Для меня становится вопросом! Самое интересное все новички в первые задают вопросы профи как преподавателю на паре, с просьбой рассказать еще раз и попонятней, потому что не знают..., это в первый раз. И учителя сразу отвечают - а ты читал книгу такую и такую?
Так вот к чему я веду. Читать книги я не разучился, во первых просто в обеденный перерыв на работе просто люблю расслабиться успокоить нервы, снять усталость и напряжение, это как раз почитать любимую книгу - касается хобби. Значит я про счетчик команд. Начальное понятие имею, про относительные переходы тоже. Вы уверяете что программа не правильно оформлена.
Тогда почему в книгах пишут типа:
После сброса микроконтроллера в счетчик команд записывается ноль.
Затем контроллер переходит в режим выполнения программы. В процессе выполнения программы счетчик всегда указывает на текущую выполняемую команду. При считывании кода команды значение счетчика увеличивается на один или два (в зависимости от длины команды). При выполнении команд безусловного и условного переходов содержимое счетчика резко меняется. В него записывается новое значение адреса.
Я думаю что компилятор должен как то сам определить мое оформление программы, как лучше перевести в hex код, или это не так?
__________________
Мозги кипят, ядрить твою валентность!!! Пойду закладывать остальные ингредиенты...
DAVE_ELEKTRIK вне форума  
Непрочитано 28.12.2011, 23:21  
pinco
Гражданин KAZUS.RUN
 
Регистрация: 04.04.2007
Сообщений: 937
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от alvadep Посмотреть сообщение
...Но кнопка может быть с разным функциями по нажатию и отпусканию.
Пример. Нажимаете кнопку "Параметр", на индикатор выводится какое-то значение параметра №1. Пока удерживаете эту кнопку, другими кнопками ("больше", "меньше") можно изменять значение. По отпусканию кнопки "Параметр" происходит запись в EEPROM....
Конечно может быть , но основной режим все же - на нажатие , а иначе не получится сделать как в Вашем же примере - у DAVE_ELEKTRIK было вообще срабатывание только по отжатию - так вот нажали - ничего - отпустили - и только тогда включится режим "Параметр" , ну допустим отредактировали - а запомнить-то как - кнопка - то уже отжата , и что , тогда сделать запоминаниев EEPROM на действии снова нажать и отпустить ? Как-то много долбежки получается .
__________________
Короче асма кода нет !
pinco вне форума  
Непрочитано 28.12.2011, 23:33  
pinco
Гражданин KAZUS.RUN
 
Регистрация: 04.04.2007
Сообщений: 937
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от DAVE_ELEKTRIK Посмотреть сообщение
Почему Вы говорите - "пока по проге контроллер добирается до основной проги ...В процессе выполнения программы счетчик всегда указывает на текущую .... При выполнении команд безусловного и условного переходов содержимое счетчика резко меняется. В него записывается новое значение адреса.
Я думаю что компилятор должен как то сам определить мое оформление программы, как лучше перевести в hex код, или это не так?
Про счетчик все верно , но дальше не так .
Потому что компилятор (в асме) не переоформляет кое-как оформленную прогу по какому-то заложенному в него шаблону , а смотрит расположение кусков проги и приписывает такой же порядок и в конечной заливке в кристалл .Поэтому не следует от него ждать автоматизма как от шаблонов -заготовок в С , но это здесь ,в асме, даже и лучше - потому что здесь Вы сами можете реализовывать специфические виды инициализаций и загрузок какой хотите ,появляется полная свобода действий , но и одновременно ответственность за правильность этих действий , лишь бы правильно работало и ,короче,было правильно оформлено .(Плюс еще пост 316 посмотрите , пока писал ответ в нем , еще других накидали) .
__________________
Короче асма кода нет !

Последний раз редактировалось pinco; 28.12.2011 в 23:44.
pinco вне форума  
Непрочитано 29.12.2011, 00:34  
MisterDi
Почётный гражданин KAZUS.RUN
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Цитата:
Первое замечание по проге - подпрограммы ну надо же располагать ПОСЛЕ инициализации и тела основной программы , ну сколько же раз говорили - а так сейчас получается все "задом наперед" - пока по проге контроллер добирается до основной проги после включения - ему надо-не надо приходится бестолково выпонять и все что в подпрограммах
Цитата:
Потому что компилятор (в асме) не переоформляет кое-как оформленную прогу по какому-то заложенному в него шаблону , а смотрит расположение кусков проги и приписывает такой же порядок и в конечной заливке в кристалл
БРЕД СИВОЙ КОБЫЛЫ !!!!! Вы хоть раз смотрели на процедуру начального старта любой вычислительной системы???
Согласно стандартов, объявления процедур и функций обязаны находиться компилятором в тексте до их первого использования. Это достигается или расположением тел функций перед основной программой или объявлением их в заголовочном файле или в теле основного модуля. Для программ на ассемблере это не действует, там программист сам должен заботиться о правильном размещении функций в памяти программ. Но я не знаю контроллера, у которого по адресу начального сброса в радиусе 3-10 команд не находился бы безусловный переход на процедуру начальной инициализации системы.
__________________
misterdi<@>i.ua

Последний раз редактировалось MisterDi; 29.12.2011 в 00:45.
MisterDi вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите начинающему (PIC16F84A). Slava-martyn Микроконтроллеры, АЦП, память и т.д 11 09.09.2010 21:55
помогите начинающему по WinAVR umkamaks Микроконтроллеры, АЦП, память и т.д 4 05.05.2010 21:01
Помогите начинающему! kolira Микроконтроллеры, АЦП, память и т.д 6 30.01.2010 15:22
Помогите советом начинающему eler Делимся опытом 100 11.09.2008 17:28
Помогите начинающему!!!! sma-etu Микроконтроллеры, АЦП, память и т.д 2 13.12.2006 18:31


Часовой пояс GMT +4, время: 23:29.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.