Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
28.12.2011, 12:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от roma9112
|
я сейчас на Подбельском с Фоминым сижу
|
Если, даже посидев на этих - возможно, уважаемых - господах, вы задаёте подобные вопросы, вам просто необходимо начать с азов. Потому что вопрос о значении, возвращаемом подпрограммой это именно они, азы.
У вас написано void func(); что такое void вы хорошо себе представляете?
|
|
|
|
28.12.2011, 12:52
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
void понятно, что ничего не возвращает. Книгу еще не изучил - в процессе. Не могу пока вразуметь, как объявить глобальную переменную, чтобы ее использовали подключаемые функции, и также видеть ее в main. В вызываемых функциях, если назначаю переменные - они локальные, а вот если мне надо в ней исползовать глобальную переменную, определенную в main, наверное я должен передать этой функции значение переменной и return-ом вернуть его??Пока то, что успел почитать не дало конкретного понятия. Приводятся описание, какие то примеры, а вот такого, что это пишем именно здесь и потому, а это там и поэтому - нет. А как человек не профобразования, и только что начав изучать язык трудновато это воспринимаю.
|
|
|
|
28.12.2011, 13:13
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Вы говорите о том, что называется "область видимости", "передача параметра по ссылке / по значению". K&R не скачали, не прочитали?
|
|
|
|
28.12.2011, 13:20
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Да я на работе, если получится, качну или до дома...
|
|
|
|
28.12.2011, 13:31
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
А у Вас сейчас нет в электронном виде??
Все, качнул, читаю разделы - внешние переменные+область действия
Последний раз редактировалось roma9112; 28.12.2011 в 13:54.
|
|
|
|
28.12.2011, 17:55
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Как ни странно в книге 1-й редакции это расписано до того просто и доходчиво, что стыдно как я ее раньше не нашел. А у Подбельского пока так и не увидел подобного, может не там ищу
|
|
|
|
28.12.2011, 17:57
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от ut1wpr
|
....Чем отличается "давно" и "в свое время"? Именно в те годы, которые вы упоминаете, мне приходилось работать с упомянутыми алгоритмами. И какая разница, указал я поточнее годы или не указал? Для меня в них (алгоритмах) нет ничего непонятного.... Повторяю, у меня проблем с кнопками нет.
Тем не менее, благодарю за комментарий. Я вас уважаю, как давнего (чуть не написал "вечного") апологета АСМ-а, хотя на мой взгляд и слегка воинствующего. Но это право вы вполне заслужили.
|
Спасибо , хотя воинствовать и не собирался ,просто для точности и ясности в постах нужно ставить все точки над i ,как говорится ,тем более что по нашим постам учатся начинающие . Апологетом АСМ-а особенно-то не являюсь , хотя признаюсь что он мне больше нравится чем С потому что на нем вообще легче все реализовывать то что на С реализуется с большим трудом и извращениями в виде опять же ассемблерных вставок . Далее, так по ходу Вам сейчас должно быть лет 60-65 - верно ? Иначе не могли Вы тогда в то время работать с ними именно физически - цитата :"...Именно в те годы, которые вы упоминаете, мне приходилось работать с упомянутыми алгоритмами..." - отталкиваясь от упомянутого 70 года -миним 18 лет обычный возраст когда кое-что начинают понимать в программировании вообще +42 года до 2012 сегодняшнего = 60 лет минимум .Если нет столько Вам сейчас лет то Вы просто врете в своем посте про работу с такими алгоритмами в то время, хоть и стараетесь быть довольно убедительным .Если Вам сейчас столько или больше то тогда я извиняюсь и также уважаю Вас что сохранили интерес к электронике до преклонного возраста , хотя неясно почему что до сих пор занимаетесь контроллерами , обычно люди такого возраста уже почти совсем не пишут прог за компом ,так как не совсем понимают как на нем работать уже в силу своего возраста , или используют его обычно только в качестве печатной машинки .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 28.12.2011 в 20:37.
|
|
|
|
28.12.2011, 19:01
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от alvadep
|
А кнопки мыши то работают по отпусканию.
Так что DAVE_ELEKTRIK прав
|
Что-то не заметил у Вас именно задачу реализации перетаскивания и отпускания значков на экране где-то ,на этом форуме на том микроконтроллере который Вы сейчас изучаете .У Вас задача что-то включить , или выключить что-то , и в наличие сейчас только кнопка без графического экрана ,и потом - даже в мышиных применениях - отпуск обьекта после отпускания кнопки по другой причине реализовано на мышиных кнопках - но обращаю внимание - все же первоначально там реализована функция именно по нажатию ,а не по отпусканию , и это основной режим - это отметка курсором и захват обьекта .(а стрелять в играх как если было реализован огонь именно по отпуску кнопки - да Вас же бы все время успевали уничтожить еще до того как Вы успели отжать кнопку после ее нажатия !!! - надеюсь это не надо пояснять) А если бы была реализация по отпуску то хотя и можно захватить обьект таким образом , и затем отпустить обьекта , но действий для этого надо тогда проделать больше - выглядело бы это так - ведем курсор на обьект , нажимаем кнопку , чтобы захватить обьект - ничего не происходит , и если двигать мышью теперь то обьект так и остается незахваченым - уже визуальная коллизия с тем что делаем руками , и только когда отпускаем кнопку - обьект захвачен , ну хорошо , вроде бы кое-как сделали половину - теперь обьект прилеплен к курсору - переместили его - нажимаем кнопку снова чтобы поставить обьект на выбранное место - а он не ставится - все так же прилеплен к курсору и двигается за ним , а отпустится он может только после снова отпуска кнопки .Всего получается 2 отдельных уже клика мышью .Традиционным способом по нажатию именно захват и перенесение при нажатой кнопке и отпуск обьекта по отпуску кнопки один клик всего получается - и это короче и визуально удобнее - даже в некоторых прогах типа маленькой ладони рисуется курсор при захвате - например Adobe Reader для просмотра .pdf файлов .Так что удобнее и лучше , и не раздражает -не надо в 2 раза больше молотить по кнопкам - лучше делать по нажатию именно какое-либо действие , а по отжатию делается только когда надо добавить еще функций или это удобнее наблюдать по экрану , естественнее что-ли для человека - нажатие кнопки соответствует захвату обьекта , отпуск кнопки соответствует его отпуску и освобождению обьекта на экране .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 28.12.2011 в 20:29.
|
|
|
|
28.12.2011, 19:07
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Похоже пока не будет полной конкретики на счет реакции кнопок от автора, спор будет до бесконечности. Можно и кнопки лифтов, банкоматов, например вспомнить и т.д. и т.п.
|
|
|
|
28.12.2011, 19:19
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от DAVE_ELEKTRIK
|
Я не спорю, я с вами вполне согласен.
Но иногда требуется на отжатие, а иногда и то и другое.
Так вот по человечески не выходит!
Разбирался с аппаратными прерываниями (INT0 прицепил кнопку) разбирался - разбирался, ничего не вкурил.
В книжке высмотрел прогу, та же программа счетчик только с прерываниями по входу INT0 и таймеру (рассматриваю пока только на ассемблере, до С позже доберусь). Алгоритм вроде такой же, как без прерываний(прогу выкладывал ранее). Залил в AVRStudio, в пошаговом режиме показало, что с второго нажатия (при отжатии) результат счета выводится на порт
Алгоритм программы не понятен, народ может подскажете? Мне сейчас трудно быстро понять, так что сильно не ругайте!
|
Посмотрел прогу от DAVE_ELEKTRIK.(ссылка в постах выше была )
Первое замечание по проге - подпрограммы ну надо же располагать ПОСЛЕ инициализации и тела основной программы , ну сколько же раз говорили - а так сейчас получается все "задом наперед" - пока по проге контроллер добирается до основной проги после включения - ему надо-не надо приходится бестолково выпонять и все что в подпрограммах ,а он еще даже и сам не до конца в этот момент проинициализирован ! - а там еще и reti есть у подпрограмм - и куда там он будет возвращаться если он даже не дошел до начала тела основной программы (хоть и короткой , две строчки там всего , но все же)
теперь кусок - :
------
TIM_OVF0: ; обработчик прерывания Timer0
dec Count_time ; в каждом прерывании уменьшаем на 1
breq end_timer ; если ноль, то на конец отсчета
reti ; иначе выход из прерывания
end_timer:
.....
reti
------
Команда breq это переход куда-то там по результату сравнения , а самих команд сравнения перед breq - нет .Последствия какой команды у Вас обрабатывается командой breq ? (Перед breq строчкой выше перед строчкой с breq должны быть команды сравнения чего-то с чем-то - типа "cp" , "cpi" ,или арифметических действий "sub" , "subi")
И как будет реакция на прерывания - по спаду или по фронту - не может устанавливается как раз в сам момент этого прерывания - а перед ним , потому что обработаться может только одно из них в случившемся прерывании и то какое было определено заранее . Короче , зачем-то сделано перебивка условий реакции прерывания уже в самом обработчике прерывания - когда оно уже случилось , так поздно уже , как говорится , именно перед возникновением и сработкой прерываний в процессе инициализации контроллера устанавливаются их условия как и когда они эти самые прерывания должны срабатывать, а как сейчас то получается судорожная перебивка условий возникновения прерывания в обработке этого же самого прерывания которое уже возникло , а с какими там на самом деле получившимися по проге условиями - еще разбираться надо.
Напишите четко что хотели реализовать , поправьте текст программы , и будем дальше смотреть какие там еще глюки остались .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 28.12.2011 в 20:17.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:52.
|
|