» » BASCOM AVR – первый шаг. Мигание светодиода и программирование контроллера.
Информация к новости
  • Просмотров: 76083
  • Автор: administrator
  • Дата: 30 июня 2008
  • 100
30 июня 2008

BASCOM AVR – первый шаг. Мигание светодиода и программирование контроллера.

Категория: BASCOM AVR

Если вы все же решились изучить BASCOM AVR, то обратимся к классическому варианту первой программы для МК – мигание светодиода.

Воспользуемся контроллером MRC40 с установленным универсальным модулем – на нем сигнальные светодиоды уже имеются в наличии. Так же для программирования используем простой программатор для LPT порта. Вся прелесть в том, что BASCOM AVR имеет встроенный программатор с поддержкой STK200/300 и нам не понадобятся ни какие сторонние программы. Встроенный программатор очень удобен еще и тем, что визуально фузи-биты контроллера программируются готовыми, визуально отображаемыми комбинациями. Это сильно снижает вероятность неправильного программирования фузов, но об этом немного позже.

Итак… Листинг программы мигания светодиода небольшой и снабжен подробными комментариями. Как видно язык BASCOM AVR прост и интуитивно понятен.

 

 

'моргаем светодиодом ;)
'RoboZone.SU

$regfile = "m32def.dat" 'используем ATmega32 (MRC40 с универсальным модулем)
$crystal = 16000000  'частота установленного кварца 16 mHz

Config Portb.2 = Output 'конфигурируем вывод 2 порта B на выход - подключаем к нему светодиод
Portb.2 = 0 'устанавливаем по умолчанию на ножке порта лог 0
Do  'начало цикла программы
Portb.2 = 1  'устанавливаем на ножке порта лог 1 - светодиод горит
Waitms 500 'задержка в миллисекундах 500мс = 0,5 секунды
Portb.2 = 0   'устанавливаем на ножке порта лог 0 - светодиод гаснет
Waitms 500   'задержка в миллисекундах 500мс = 0,5 секунды
Loop
End
 

 

 

 

 

 

 

 
Запускаем BASCOM AVR, создаем новый файл и набираем (копируем отсюда) листинг программы. Сохраните в какой либо папке этот проект, к примеру под именем – led flash.bas. Далее проект необходимо скомпилировать. Для этого воспользуемся кнопкой на верхней панели управления.

 
Далее проект необходимо скомпилировать. Для этого воспользуемся кнопкой на верхней панели управления.
 

Если при наборе текста программы вы допустили, какую либо ошибку, то на этапе компиляции BASCOM AVR об этом сообщит. Ошибок не было? Отлично! Переходим к этапу прошивки микроконтроллера.

Подключите программатор и включите питание контроллера. Теперь необходимо указать компилятору какой именно программатор подключен. Эта процедура осуществляется в меню Options -> Programmer. Из выпадающего меню выберите STK200/STK300 Programmer.
 

BASCOM AVR – первый шаг. Мигание светодиода и программирование контроллера.
 

Затем запускаем встроенный программатор BASCOM AVR.

Затем запускаем встроенный программатор BASCOM AVR.
 

Как мы видим, компилятор подсказывает нам, что встроенный программатор так же можно запустить путем нажатия горячей клавиши F4.
Итак мы подошли к самому ответственному этапу. Если вы еще не запрограммировали фузи-биты вашего микроконтроллера, то самое время это сделать. В открывшемся окне программатора мы видим три вкладки – содержимое флэш-памяти, содержимое EEPROM и заветная вкладка программирования фузи-битов – Lock and Fuse Bits. Переходим в нужную вкладку и смотрим на ее содержимое. Как мы писали выше установка фузи-битов в BASCOM AVR очень удобная и интуитивно понятная, что минимизирует возможность неправильной установки фузов.
 

BASCOM AVR – первый шаг. Мигание светодиода и программирование контроллера.
 

На скриншоте отображены установки фузов для нашего универсального контроллера MRC40. Собственно по сравнению с заводскими настройками в данном случае было выполнено два изменения конфигурации – отключен JTAG и обозначено тактирование микроконтроллера от внешнего высокочастотного кварцевого резонатора.]
 
Процесс программирования фузов прост – выбираем из выпадающих меню необходимые настройки и путем нажатия кнопок в правой части окна программатора - прошиваем.
 

Процесс программирования фузов прост
 

Прошили фузии-биты? Замечательно! Осталось последнее – прошить нашу скомпилированную программу мигания светодиода. В верхней части меню находится зеленая заветная кнопка – Auto Program Chip. Нажимайте ее и прошивка окажется в микроконтроллере.
 

В верхней части меню находится зеленая заветная кнопка 8211; Auto Program Chip
 

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

Мигает правильно? Поздравляем!

Надеюсь вам понравилось использование BASCOM AVR ;) ]

Исходник демо-прошивки и скомпилированный файл hex вы можете скачать в архиве ниже.
Вы не можете скачивать файлы с нашего сервера

 

Метки к статье: BASCOM AVR, начинающим

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
<
romahka

30 декабря 2008 12:58

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
при прошивки фузи-битов он говорит readlb enteru not found
а еще при каждоом нажатии auto chip он говорит could not indefinet chip with id:ffffff
heeeeeeeeeeeeellp
<
stoyanae

11 февраля 2009 11:29

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
Аналогично! я, блин уже под разными соусами и так и эдак а он - readlb enteru not found......could not indefinet chip with id:ffffff
<
Sergey_r

11 февраля 2009 16:21

Информация к комментарию
  • Группа: Журналисты
  • ICQ: {icq}
  • Регистрация: 13.07.2008
  • Статус: Пользователь offline
  • Публикаций: 10
  • Комментариев: 181
народ, смотрите программаторы свои, ищите косяки
<
Петрон

7 марта 2009 00:25

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
Програма рабочая, у меня светодио мигает, ищите косяки у себя
<
vpashko

5 мая 2009 22:13

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
Предлагаю админу или кому нибудь знающиму продолжить тему, например такую: BASCOM AVR – второй шаг. Мигание светодиода с помощью ШИМ а третий шаг с помощью таймера.Кстати примера с ШИМ и таймера на BASCOM ни разу не встречал.
<
administrator

5 мая 2009 23:00

Информация к комментарию
  • Группа: Администраторы
  • ICQ: {icq}
  • Регистрация: 26.02.2008
  • Статус: Пользователь offline
  • Публикаций: 66
  • Комментариев: 747
vpashko, ок, появится время напишу
<
vpashko

6 мая 2009 08:56

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
Спасибо админ что не отказали в предложении,надеюсь эта тема будит интересна не только мне а и всем начинающим...
<
foxovich

14 июня 2009 00:16

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
та же проблема с id:ffffff.
микросхема: ATMEGA16
кто смог найти ошибку и исправить помогите пожалуйста!
<
administrator

14 июня 2009 11:37

Информация к комментарию
  • Группа: Администраторы
  • ICQ: {icq}
  • Регистрация: 26.02.2008
  • Статус: Пользователь offline
  • Публикаций: 66
  • Комментариев: 747
foxovich, смотри комментарии к статье про ЛПТ программатор
<
vpashko

2 июля 2009 21:28

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
Админ подскажите, а не приходилось Вам в железе на BASCOM AVR воспроизводить музыку???, у меня что то не получается.

Вот код:
$regfile = "m8def.dat"
$crystal = 1000000
Config Portb.0 = Output
Speaker Alias Portb.0
'====================
Do
'Europe :: Final Countdown
Sound Speaker , 124 , 675 'H2(1/16)
Sound Speaker , 110 , 758 'A2(1/16)
Sound Speaker , 248 , 675 'H2(1/8)
Waitms 125 'P(1/16)
Sound Speaker , 165 , 1011 'E2(1/8)
Waitms 250 'P(1/8)
Waitms 125 'P(1/16)
Sound Speaker , 131 , 637 'C3(1/16)
Sound Speaker , 124 , 675 'H2(1/16)
Sound Speaker , 131 , 637 'C3(1/16)
Waitms 125 'P(1/16)
Sound Speaker , 124 , 675 'H2(1/16)
Waitms 125 'P(1/16)
Sound Speaker , 220 , 758 'A2(1/8)
Waitms 125 'P(1/16)
Waitms 250 'P(1/8)
Sound Speaker , 131 , 637 'C3(1/16)
Sound Speaker , 124 , 675 'H2(1/16)
Sound Speaker , 262 , 637 'C3(1/8)
Waitms 125 'P(1/16)
Sound Speaker , 165 , 1011 'E2(1/8)
Waitms 250 'P(1/8)
Waitms 125 'P(1/16)
Sound Speaker , 110 , 758 'A2(1/16)
Sound Speaker , 98 , 850 'G2(1/16)
Sound Speaker , 110 , 758 'A2(1/16)
Waitms 125 'P(1/16)
Sound Speaker , 98 , 850 'G2(1/16)
Waitms 125 'P(1/16)
Sound Speaker , 92 , 901 'Fis2(1/16)
Waitms 125 'P(1/16)
Sound Speaker , 110 , 758 'A2(1/16)
Waitms 125 'P(1/16)
Sound Speaker , 196 , 850 'G2(1/8)
Loop

Прошиваю программой Uniprof, фузы выставляю из программы ParaPROG :
Low_0 = CKSEL0|U
Low_1 = CKSEL1|P
Low_2 = CKSEL2|P
Low_3 = CKSEL3|P
Low_4 = SUT0|P
Low_5 = SUT1|U
Low_6 = BODEN|U
Low_7 = BODLEVEL|U
High_0 = BOOTRST|U
High_1 = BOOTSZ0|P
High_2 = BOOTSZ1|P
High_3 = EESAVE|U
High_4 = CKOPT|U
High_5 = SPIEN|P
High_6 = WDTON|U
High_7 = RSTDISBL|U

[lock-bits]
Lock_0 = LB1|U
Lock_1 = LB2|U
Lock_2 = BLB01|U
Lock_3 = BLB02|U
Lock_4 = BLB11|U
Lock_5 = BLB12|U
В динамике слышно не музыку а какую то переменку, в Протеусе работает четко, что может быть???
Назад Вперед
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.