Radiohobby Forum

Интернет конференция журнала "Радиохобби"

Вы не вошли.

Объявление

Подписка на новые материалы от Николая Сухова - ролики, схемы, модели, онлайн конференции, консультации, чат.

Внимание! Почта в доменах Яндекс и Mail.ru не будет работать в профилях форумчан, из-за введённых правительством Украины санкций против этих компаний. Всем, кто ранее использовал подобную почту, для сохранения прежней функциональности форума, рекомендуется её поменять.

Огромная просьба, заливать тематические картинки и файлы в личные файловые каталоги на форуме, чтобы они не потерялись, со временем!

Ссылка "Загрузки" находится справа внизу формы набора сообщения.

Подписка на журнал "Радиохобби" прекращена. Подробности. Форум же - продолжает свою работу.

#441 01.09.2007 21:34:15

vzv
Завсегдатай
Откуда: Чернигов
Здесь с 28.09.2006
Сообщений: 812

Re: AVR для "чайников"

Наконец решился заняться МК. Начал с Си, но потом понял, что пишу тупо повторяя кем-то уже наработанные алгоритмы без ПОЛНОГО понимания работы МК.
Забросил Си, сейчас разбираюсь в Ассемблере.

Вне форума

#442 20.01.2008 18:08:29

Матроскин
Ветеран
Откуда: Краснодар
Здесь с 06.02.2006
Сообщений: 2,022

Re: AVR для "чайников"

Народ, недавно стал вопрос: Как в AVRStudio собрать проект из нескольких файлов? В хелпе по поводу директивы #include "file" написано до обидного мало. Интересует больше сам формат подключаемых файлов. Необходимы ли в них директивы .DSEG и .CSEG? Я пробовал брать простые програмки типа мигалки светодиодом и, допустим, подпрограмму переключения светодиода выносить в отдельный файл. Однако при компиляции выскакивают ошибки на конфликт адресов.

Какие особенности сборки проектов??


......There is someone in my head, but it's not me.......

Вне форума

#443 20.01.2008 20:10:27

Dmitry
Забанен
Откуда: Запорожье
Здесь с 03.02.2004
Сообщений: 3,105
Сайт

Re: AVR для "чайников"

В МПЛАБ для ПИК-ов было два прикола
- Можно начинать включаемый модуль директивой "org", которая задает адрес, с которого модуль будет расположен в памяти программ.
- С другой стороны, делал так - в осн. листине делал строки "include" в самом конце. При таком раскладе компилятор вначала складывал в память программ код основного листинга, а потом уже код инклюдов. Единственное, если я определял какие-то переменные в инклюдах, а использовал их в основном листинге, приходилось их определять в отдельном файде определений, а его "инклюдить" в самом начале основного листинга, аналогично файлу определений мнемоники от микрочипа...


Почему когда мы нарушаем, нас штрафуют, а когда всё делаем правильно, с нас берут налоги?....

Вне форума

#444 20.01.2008 21:55:17

Матроскин
Ветеран
Откуда: Краснодар
Здесь с 06.02.2006
Сообщений: 2,022

Re: AVR для "чайников"

Я тоже так пробовал. В принципе, что-то получалось, но...
Допустим есть у меня процедурка работы с LCD. Я эту прогу так посторил. Есть подпрограмма выдачи байта на LCD и подпрограммка проверки BF. И есть макросы, типа Put_char 'A', в которых устанавливается адресация к регистру данных или команд ЖК, нужный байт (код символа или команда) кладется в регистр и вызывается подпрограмма передачи. Т.е. в этой процедуре есть макросы и подпрограммы. Если #include поставить в начало, после файла описания регистров вылетают конфликты адресов. Если в конец, все компилиться, но выскакивают ошибки "unknown instructions or macro" (Я пытаюсь макросы из модуля LCD юзать в основной проге). Написал Liv'у, но он что-то молчит, видимо не получил письмо.

Попробую с директивой .org


......There is someone in my head, but it's not me.......

Вне форума

#445 20.01.2008 22:35:16

Матроскин
Ветеран
Откуда: Краснодар
Здесь с 06.02.2006
Сообщений: 2,022

Re: AVR для "чайников"

Вот. Прямо сразу и пишу. Попробовал директиву .org. После описания макросов в подключаемом файле написал

.org  0xFF

и дальше пошел ассемблерный код.

В самом начале основного листинга поставил инклуде
Все заработало, и макросы и подпрограммы из подключенного файла.

Теперь бы разобраться, с каких адресов начинать модули (FF я от балды написал smile )


......There is someone in my head, but it's not me.......

Вне форума

#446 21.01.2008 00:29:21

Dmitry
Забанен
Откуда: Запорожье
Здесь с 03.02.2004
Сообщений: 3,105
Сайт

Re: AVR для "чайников"

Матроскин пишет:

... выскакивают ошибки "unknown instructions or macro" (Я пытаюсь макросы из модуля LCD юзать в основной проге).

У меня тоже так было, когда пытался вызывать определения и флаги из вложенных модулей. Я ж пишу - отдельный файл ОПРЕДЕЛЕНИЙ и его инклюдить вначале. А то ведь получается, что компиятор в Вашем "основном" листинге находит вызов параметра "ВАСЯ", а параметр "ВАСЯ" определяется в инклюде "КОЛЯ", который "аж где-то там". Вот и ошибка.

А по уму (мой метод - по колхозному) вообще-то нужно разобраться с такой штукой как GLOBAL (это в МП ЛАБе такой переменной в иклдах пределяют "понятия", используемые во всем проекте,  не только внутри инклюда). Думаю у АВР тоже должно быть что-то аналогичное.

Матроскин пишет:

Теперь бы разобраться, с каких адресов начинать модули (FF я от балды написал smile )

Когда я пытался этим методом решать, то в принципе смотрел выходной листинг, на предмет, где "пошел порожняк" и выбирал адрес чуток поболее. В принципе, можно пытаться его уменьшать и ждать сообщений об ошибках от компилятора. Нет матков - снова уменьшаем адрес, есть - значит перестарались, возвращаем тот что был поболее.

Правда, то ли ЛИВ, толи Торрес меня поругал за такое - и правильно. Поменяешь две строки в одном из файлов - потом заново всему проекту адреса подбирать..


Почему когда мы нарушаем, нас штрафуют, а когда всё делаем правильно, с нас берут налоги?....

Вне форума

#447 21.01.2008 10:44:54

Матроскин
Ветеран
Откуда: Краснодар
Здесь с 06.02.2006
Сообщений: 2,022

Re: AVR для "чайников"

Да, все-таки подход довольно колхозный получается с этими адресами, а бить модуль на части, чтоб вынести макросы вверх, не хочется. Он представляет собой логически завершенную прогу.  Написал Liv'у еще раз, но что-то у меня с почтой, при отправке крякозябры лезут.


......There is someone in my head, but it's not me.......

Вне форума

#448 21.01.2008 21:06:46

Dmitry
Забанен
Откуда: Запорожье
Здесь с 03.02.2004
Сообщений: 3,105
Сайт

Re: AVR для "чайников"

Зацепите талмуды от изготовителя (АВР студио) и почитайте. Думаю, сможете разобраться самостоятельно


Почему когда мы нарушаем, нас штрафуют, а когда всё делаем правильно, с нас берут налоги?....

Вне форума

#449 21.01.2008 21:18:24

Vasil
Ветеран
Откуда: близ Киева
Здесь с 23.01.2004
Сообщений: 1,159

Re: AVR для "чайников"

Пару вопросов возникло:
1) Наконец то выяснил, что значит эвалюэйшн у ChipBlaster AVR - программатор из состава Code Vision, но идущий отдельно. Когда код переваливает через пол/кристалла, он отказывается его программировать.
Никто не знает, как его вылечить? (CV устанавливать не хочу)
2) Строит ли кто блок-схемы алгоритмов? Если да, то какими критериями пользуется. Или, ( у мня в основном так) что видится, то и поется? Начало всегда почти как у Баха, а потом на кан-кан переходит sad .

Отредактировано Vasil (21.01.2008 21:19:14)

Вне форума

#450 21.01.2008 22:17:57

Jaxon
радиолюбовник
Откуда: Николаев
Здесь с 22.01.2004
Сообщений: 3,019

Re: AVR для "чайников"

я не строю...
что вижу то пою...
сильно сложных прог пока нет.., мож поэтому ?
хватает все в голове держать

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.048 сек, 7 запросов выполнено - Использовано памяти: 618.63 Кбайт (Пик: 669 Кбайт) ]