Архив по категории учим мк avr Category

 #5 основы си для мк

Август 30, 2008

В этом уроке даются основные понятия языка и необходимые примеры использования операторов. В дальнейшем будут появлятся новые операторы.
В отличии от скриптовых языков, си требует указать размер переменной. Это называют еще типом переменной.
Нужно это для правильного расхода памяти.
Например для цикла for на обычном компьютере используют переменную типа int. Считает такой цикл обычно не так много, а памяти выделяет больше.
При программировании мк нам надо следить за расходом памяти и грамотно выделять ее.
В основном в мк счет идет до 65535 или до 255.
Поэтому чаще всего используется переменная char в 1 байт.
Тип int в 2 байта используется для хранения значений 16 битных счетчиков или переменных, требующих 2 байта.
Например это может быть частота для приемника типа 101.2 мгц - 10120.
Если мы будет хранить частоту в десятичном виде, то нам надо будет резервировать переменную другого типа, которая занимает еще больше места. И все равно число надо будет потом преобразовывать в инт.

 #4 из чего состоит проект и что в файлах?

Август 17, 2008

Основы для первого проекта. Типы файлов и информация в них.

Простой проект состоит из одного файла с расширением .c .
Однако даже простой проект может содержать в себе много кода и этот код может быть универсальным.
Например я использую в проекте 2х строчный жк индикатор. А у вас его нет, но есть однострочный.

Что делать? Достаточно в одном файле изменить один параметр и пересобрать.
Это файл заголовка .h.
В этом файле определяются разные константы и макросы, а так же прототипы функций.
По моем мнению прототипы не нужны и не обязательны.
Они служат только для быстрого определения типов данных в функциях от третьих разработчиков.
Гцц вроде бы выдает только предупреждение об отсутствии прототипов.

категория: учим мк avr, 6 каментов

 #3 компилятор и его кишки

Август 17, 2008

Что такое компилятор и зачем он нужен? Из чего состоит и как работает?

Компилятор - это набор функциональных блоков. Блоки эти состоят из разных мелких програм и модулей. (для гцц)
Другие компиляторы могут быть всего одним файлом, однако принцип работы у них один и тот же.

При компиляции сначала весь исходный код проверяется на соответсвие синтаксису. Если где забыли скобку закрыть или точку с запятой, то он укажет номер строки и тип ошибки, а потом пойдет дальше. Причем остальные ошибки могут быть следствием первой.
Поэтому сначала надо устранить первую ошибку и с большой долей вероятности остальные пропадут сами собой.

Компиляторы достаточно умные и могут указывать на неиспользуемые переменные или функции, на несоответствие типам данных или бесконечные циклы.

категория: учим мк avr, 2 каментов

 #2 осваиваем proteus

Август 12, 2008

http://proteus123.narod.ru/01.htm

Какие особенности у таких симуляторов? Для симулирования тут не надо полностью рисовать схему.
Что конкретно надо для правильной и быстрой симуляции?
Резисторы подтяжки обычные примитивы, в цепях светодиодов и индикаторов резисторы не нужны, не нужны кварцы и питание для мк.
Если выводы надо подтягивать к питанию, то в разделе источников питания надо выбрать стрелку вверх.
Для общего провода нужна земля в виде символа заземления.

Для прошивки не надо настраивать протеус для компилятора, достаточно только указывать .hex или .coff файлы. Во втором случае моно будет видеть сишный код и шагать по нему в отладчике.

Если мк работает по дефолту на 8мгц с делителем на 8 (от внутреннего генератора), то в его свойствах надо указывать 1мгц.
Для боле-менее приличной работы нужен процессор не ниже п3 1ггц. Это самый минимум для реального времени.

категория: учим мк avr, 3 каментов

 #1 подготовка софта

Август 8, 2008

Чтобы симулировать работу мк и внешнего железа, придумали довольно приличный симулятор Proteus vsm v7.x.
В нем конечно есть глюки, но пока это лучший в освоении.
Если логин в виндовсе у вас кириллическими буквами, то надо перенести временные папки в другое место типа c:\tmp, иначе будет ошибка.
Смотрите логи, там всегда видна причина.
http://www.filefactory.com/file/b4e0fe/n/proteus_72sp2_rar
За новыми версиями и рабочими линками http://www.sonsivri.com/forum/index.php?topic=3134.345

Вторая байда - собственно сам компилятор гцц под авр. Линупсоиды могут установить только библиотеку для авр.
http://winavr.sourceforge.net/ В комплекте идет текстовой редактор programmers notepad, хотя можно использовать любой другой, вплоть до ms vs 6.
Хотя ввиду простоты конструкций кода для авр, навороченные иде тут не нужны.
В комплекте так же идет генератор мейкфайлов, о которых будет рассказано позже.

Третья байда - мануал по библиотекам авр  http://www.nongnu.org/avr-libc/user-manual/modules.html
Так же он идет в виде пдф с компилятором. Вроде бы и в хтмл тоже есть.

Говорят, что новые версии компилятора имеют глюки. Бывает так, что все компилируется, но работает неправильно в железе.
Это явно глюк компилятора.

Последний штрих - даташит на мк. Будем использовать мегу8. Там достаточно выводов и периферии при цене в 1.5 евры.
http://atmel.com/dyn/resources/prod_documents/doc2486.pdf
Если достать 8 нет возможности, пойдет 4, 16 или 32. Первая совместима 1в1, только памяти меньше.
У вторых корпус больше, но название выводов и набор периферии одинаковый.

Еще для облегчения работы нужны будут калькуляторы.
Для получения разных заумных цифр http://www.electronics-lab.com/downloads/mcu/002/

Для выставления тактирования и других режимов в мк есть специальные биты конфигурации.
http://www.engbedded.com/cgi-bin/fc.cgi
Неправильное выставление битов может привести к неработоспособности мк и для восстановления его придется делать специальный программатор. В дальнейшем будет приведен другой софт для выставления бит.

http://www.hexelon.com/kalkulator/index_en.php калькулятор, который поможет быстро переводить единицы счисления и имеет кучу всяких полезных функций. Особенно побитный сдвиг - одно из труднопонимаемых действий при работе с мк.

После того, как скачан даташит, идем на страницу 287 и распечатываем список регистров. Желательно одну копию иметь в сортире и по возможности читать ее и заучивать названия регистров и даже отдельные флаги. Это собственно и есть конфиг мк.
Название регистра - переменная, а значения - отдельные биты.

категория: учим мк avr, 1 камент

 #0 FAQ по обучалке

Август 8, 2008

Решил все же я начать писать про программирование мк. Первым на ум пришел сей фак, который должен прояснить некоторые вопросы.
Читать стоит всем, кто собрался читать обучалку, чтобы потом не было обид и непоняток.

категория: учим мк avr, 2 каментов

 век живи, век учись

Ноябрь 4, 2007

4. Не путайте в фьюзах кварц и внешний генератор!!! Если прошикли с фьюзами под внешний генератор, считайте проц лег! Скорее всего, та толпа процов о которой тут идет речь именно тек и лежит! Решить проблему можно подручными средствами:
- Подключить внешний генератор с частотой до 8 МГц и перешить фьюзы.
- Или подключить к входу XTAL на проце свой палец и (в "хорошей" помеховой обстановке) перешить фьюзы с тактовой 50 Гц (сеть)! Медленно, но помогает!

Я бы хуй догадался. В усилительные тракты пальцем тыкал, а вот в мк ...