Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
08.03.2007, 02:02
|
|
Частый гость
Регистрация: 14.05.2006
Сообщений: 24
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Блогадарю за помощь,конечно многое остаются не ясным но я буду пытаться разобраться.
|
|
|
|
08.03.2007, 02:04
|
|
Частый гость
Регистрация: 14.05.2006
Сообщений: 24
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Блогадарю за помощь. Многое конечно не совсем сяно,ноя пытаюсь разобраться.
|
|
|
|
08.03.2007, 21:19
|
|
Частый гость
Регистрация: 14.05.2006
Сообщений: 24
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Блогадарствую за испарвления,но многое остаётся не ясным. Буду пытаться разобраться.
|
|
|
|
09.03.2007, 15:50
|
|
Частый гость
Регистрация: 04.02.2007
Сообщений: 24
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Респект borshef !!!
Начинающему...
Не работать не может.Работает не так как хотелось бы...От себя могу посоветовать следующее: анализ нажатия кнопки выделить в подпрограмму,ибо это второстепенная функция.В первую очередь программа должна выполнять (в данном случае ваша)зажигание-гашение светодиода.И уже в самом цикле(где это уж как вам нравится)вставить подпрограммку.Легче разбираться будет.Таким же образом можно вводить в программу своеобразные маркеры говорящие о том что сейчас делает программа...Подцепите еще пару светодиодов и зажигайте их(и соответственно гасите)в паузах,и циклах опроса кнопки.
И самое главное правило- при написании программы необходимо учитывать ВСЕ ситуации которые могут сложиться в ходе ее выполнения.Даже если они кажутся нереальными и идиотскими!
|
|
|
|
09.03.2007, 17:24
|
|
Частый гость
Регистрация: 09.05.2006
Сообщений: 19
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Все зависит от условий применения кнопки, если только для включения/выключения устройства то целесообразней вешать ее на внешнее прерывание, а вообще все зависит от назначения самой проги. Я привел только пример, это не зачит, что нужно делать так и только так. В зависимости от условий, решения могут быть разнообразные.
|
|
|
|
09.03.2007, 22:47
|
|
Частый гость
Регистрация: 04.02.2007
Сообщений: 24
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Уважаемый -Dmitriy-!Вот накидал тут проектец...
Как говорится мысли у людей занимающихся одной темой схожи... ![Улыбка](images/smilies/icon_smile.gif) (респект предидущему автору)
Проект кладу целиком.Тут кнопка как раз по прерываниям "облизывается".А изменение состояния рограммного триггера по отпускании ее.Не догма но для начала как пример пойдет.Может какие "ноги" не совпадают с вашей схемой-извините.Перебросить несложно.
Кстати в Протеус сие грузить не обязательно(хотя полезно).Просто прочешите все в эмуляторе как следует и все станет ясно.Длительность паузы взял с потолка.Поэтому проверьте.Меняться может в довольно больших пределах.Таймер антидребезга - тоже.В общем главное идея и верное направление!!!Удачи!
Прикрепленный файл: 5107965.rar
|
|
|
|
10.03.2007, 01:13
|
|
Частый гость
Регистрация: 09.05.2006
Сообщений: 19
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Сообщение от -Dmitriy-
|
многое остаётся не ясным
|
Спрашивайте что непонятно, постараемся объяснить на простом языке, без заумных терминов 8O . Выберете какой-нибудь простенький проект, для начала лучше из тех которые тут упоминались, и разберем его по косточкам ![Улыбка](images/smilies/icon_smile.gif) . Может не совсем оперативно, но будем стараться. Может еще кто подтянется, и нам с alts , будет не так одиноко ![Улыбка](images/smilies/icon_smile.gif) бороздить просторы АВ.
|
|
|
|
10.03.2007, 13:58
|
|
Частый гость
Регистрация: 04.02.2007
Сообщений: 24
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Уважаемый -Dmitriy-, и не только!
На сайте www.atmel.ru в архиве статей за прошлые годы есть довольно приличные описания структуры ядра AVR и многих переферийных модулей.Кое-что конечно уже устарело,но для изучения самой архитектуры вполне пригодно.Кроме того есть литература которая будет очень пользительна. ![Прикольно](images/smilies/icon_wink3.gif) Книга из серии Библиотека инженера Микроконтроллеры AVR:От простого к сложному Голубцов М.С.,Кириченкова А.В. В ней как раз по АТ90S2313 курс и дается.Есть примеры проектов и программ.Правда на классическом ассемблере и Си но это не беда.Из ассемблера в мнемонику Билдера перевести код легко.Есть другие книги.Например:Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel. А.В.Евстифеев. Тоже очень неплохое издание.Правда 2313 в ней нет.Их автор почему то отнес к семейству Classic но как справочник очень хороша.Но имейте в виду,что в переводах на русский даташитов очень часто бывают ошибки.Поэтому не устаю повторять-достоверная инфа - только у производителя и только в фирменных описаниях,т.е. на инглише.Приверженцы Микрочипа конечно возмутятся...Мне тоже не очень ясна политика фирмы Atmel в этом вопросе...
Теперь про проекты.Помните ,что войдя в подпрограмму из нее надо и выйти!В АВР адрес выхода запоминается в стеке который лежит в области ОЗУ!Т.е. работа пп всегда должна заканчиваться "Ret".Иначе может произойти переход по коду программы в неизвестном направлении.Стека как такового в AVR нет(в смысле аппаратного в привычном понимании).Да он и не нужен.Регистров более чем достаточно.Я например стек оставляю для того чтобы в нем сохранялись интимные подробности жизни ядра и не трогаю его.Регистров и Озу для решения любых задач более чем достаточно.Просто стек сохранился с тех далеких времен когда 64 Кб ОЗУ казались невероятной роскошью,а 8 МГц такта были чем то заоблачным...
|
|
|
|
10.03.2007, 18:30
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Сообщение от alts
|
Стека как такового в AVR нет(в смысле аппаратного в привычном понимании).Да он и не нужен.Регистров более чем достаточно.Я например стек оставляю для того чтобы в нем сохранялись интимные подробности жизни ядра и не трогаю его.Регистров и Озу для решения любых задач более чем достаточно.Просто стек сохранился с тех далеких времен когда 64 Кб ОЗУ казались невероятной роскошью,а 8 МГц такта были чем то заоблачным...
|
Позвольте не согласиться. Нет ни одного микро(и не микро) процессора без стека. Стек был, есть и будет всегда - это такая же фундаментальная основа, как булева алгебра.
А уж программный стек или аппаратный - дело второе. Кстати, есть АВРки и с аппаратным стеком (например, тини15).
|
|
|
|
12.03.2007, 13:51
|
|
Частый гость
Регистрация: 04.02.2007
Сообщений: 24
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Уважаемый nml !
Соглашусь с Вашим доводом но...Если вспомнить далекие времена когда по земле бегали мамонты...В общем то стек был предназначен именно для интимной жизни ядра(а точнее тогда это звалось-АЛУ).Программист имел к нему доступ ибо это была чуть ли не единственная память для его замыслов.Да и архитектура способствовала пользованию им...Сейчас же как архитектура,так и аппаратные возможности кристаллов стали такими,что в стеке для программиста особой необходимости нет.Нужна конечно какая-то память для нужд ядра кристалла.Вот стек как раз для этого и подходит.Речь я вел не о том что он совсем не нужен, а о том что "дергать" его программисту нужно лишь в крайнем случае.И первая причина-архитектура ядра.Если в MCS-51 мимо Аккумулятора не пролетишь и работа со стеком сводится лишь к тому чтобы вынуть из него то что положил,то в АВР нет смысла использовать "магазинную" память в то время когда есть куча параллельно доступных регистров,да еще и ОЗУ.Можно столкнуться с ядром нечаянно,особенно если в программе много подпрограмм.Отдельный случай кристаллы ATTiny не имеющие ОЗУ.Тут да-согласен.Но опять же не забывая,что "живешь" на одной территории с ядром.
Такие случаи характерны именно при переходе с MCS-51 на AVR...т.е. в принципе не более чем человеческий фактор.Сила привычки!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:33.
|
|