Главная » Статьи » Программирование » Программирование в BascomAVR

BascomAVR
BascomAVR - приложение для персонального компьютера, с помощью этой программы можно выполнять следующие действия:
-писать программы для avr, pic и др. мк
-компилировать написанный код программы в машинный код в формате .hex, нужный для мк
-симулировать написанный вами код
-прошивать мк с помощью самого компилятора используя например программатор STK200/STK300, или с помощью внешних программ не входящих в BascomAVR, например USBASP_AVRDUDE_PROG(я использую эту программу и проблем не знаю, программатор соответственно USB).

Теперь о поддержке функций в BascomAVR, которые встроены в мк AVR:
-аналого-цифровой преобразователь (АЦП, ADC) — устройство, преобразующее
входной аналоговый сигнал в дискретный код (цифровой сигнал)
-ШИМ—широтно-импульсная модуляция(например с помощью шима можно контролировать ПРОГРАММНО скорость движения вашего робота)
-UART
-поддержка шины I2C
-таймеры, счётчики
Так же можно сказать и о внешних устройствах, которые могут быть подключены:
-не большие цифровые клавиатуры 3*3
-ЖК-дисплеи 16*2, 16*4, 40*2 и т.д.
-кнопки
-датчики(Sharp, ик-бампер, фотодиоды, УЗ и т. д.)
-инфракрасное управление(для этого нужно подключить ик-приёмник, робот будет управляться с пульта от телевизора)
-конечно же можно подключить и камеру и многое другое, но всё не перечислить :)
Так вот, кто-то может сейчас сказать, а на фига изучать какой там бейсик, если есть более современные языки, я вам скажу товарищи. Потому, что это чудесный язык в котором на начальных этапах сможет разобраться даже ребёнок. Во всяком случаи в простых кодах на подобие мигания светодиодом, которую в качестве примера буду приводить в этой же статье ниже. И простота этого языка это не одна причина. Если поискать по интернету, то можно найти очень много примеров причём не на иностранных сайтах, а именно на наших, где частенько даются подробные комментарии. А вот ранее изучал Си так вот против него ни чего не имею, но такого же сказать не могу. Примеров не достаточно хотя книг полно с этим не поспоришь. Кстати на счёт книг. Можно скачать их не сколько-это единственные, которые мне попадались.
 
Bascom-8051 - это правдо не совсем то, но очень похожа, поэтому поглядеть тоже можно.
 
Теперь немного о самом языке. Ниже приведу примеры как задействовать мк, кварц, порты и т.д.

Мк и кварц:
$regfile = "m16def.dat"    '-ATmega16
$crystal = 16000000    '-кварц на 16мГц

Для комментариев нужно поставить значок " ' " и после него можно писать
всё что угодно, то есть так же я сделал выше где мк и кварц.

Порты. Например порт A:
Config PORTA.0 = Output-здесь ножку PA0  мы назначили на выход
Config PORTA.0 = Input-здесь ножку PA0  мы назначили на вход
Config PORTA = Output-с помощью такой команды мы назначили все ножки PA на выход
Config PORTA = Input-с помощью такой команды мы назначили все ножки PA на вход

Так же для простоты можно присвоить имя каждому порту, вот так:
Config PORTA.0 = Output : Led Alias PORTA.0-здесь ножку PA0  мы назначили на выход и присвоили имя Led
Led = 1 - подали команду на светодиод

Тоже самое может выглядеть так:
Config PORTA.0 = Output
PORTA.0 = 1

Цикл программы:
do
'ваша программа
loop


Подробней о циклах здесь.

Например:
Do
Porta.2 = 1
Wait 1
Porta.2 = 0
Wait 1 - задержка в одну секунду
Loop

 

Условие. Например такое:
If Portc.0 = 1 Then : Led = 1 : Else : Led = 0 : End
Расшифрую. Если(If) на PC0 логическая единица(1), тогда(Then)
зажигаем(1) светодиод(Led) иначе(Else) светодиод(Led) погашен(0).

Закончить программу:
End

Ну вот для начало должно хватить.

Скачать компилятор можно по этой ссылке.

И так теперь возьмём наш контроллер. На дополнительном модули к нему как вы помните есть 3 светодиода. Напишу пару программ в пример(исходник + прошивка). Выложу всё в архиве(мигание светодиодом и бегущие огни). Скачать по ссылке. Там всё подробно описал с комментариями. Вопросов возникнуть не должно. Удачи.

Ссылка на следующую статью.




Категория: Программирование в BascomAVR | Добавил: Space (27.12.2010) | Автор: Space E W
Просмотров: 2714 | Комментарии: 11 | Теги: avr, bascomavr, бейсик, баскомавр
Всего комментариев: 111 2 »
1 loiter   (07.01.2012 13:48) [Материал]
Всё работает в ISIS, но вот преследуют меня проблемы дурацкого свойства
не как не пойму,почему мега8 прошивается, но не запускается???
Отсоеденил программатор.Питание взял с блока питания компа 5.01 В.
Всё сделал +5В на VCC(7),GND (8,22),PD2 (4) к нему диод с резистором 205 ом на GND.
RESET - через 10Ком на +5В.
Никакого эффекта.
Прошил через BASCOM --- USBAsp1879 программатр
Простая программа мигания диодом с PD2.
Где косяк, подскажите ????????

2 loiter   (07.01.2012 13:56) [Материал]
Пробовал с батареек тоже - ничего
$regfile = "m8def.dat"
$crystal =1000000
Config PORTD.2 = Output ` конфиг порт как выход
Do ` начало
Set PORTD.2 ` подача питания на порт
Wait 1 ` ждём 1 сек
Reset PORTD.2 ` убираем питание с порта
Wait 2 ` ждём 2 сек
Loop ` конец

3 Space   (07.01.2012 14:56) [Материал]
в проге косяков нет, либо fuse прошил не верно, либо с питание что-то не так

4 loiter   (09.01.2012 23:11) [Материал]
USBAsp1879 программатр я купил у немцев.Вроде всё работает.Подскажи каким образом неверно прошиваются fuse ???
Вообще это пробная программа я другую тоже пробовал загрузить -
такая же бяка...

5 loiter   (09.01.2012 23:14) [Материал]
И что не так с питанием...?Жаль нет ещё одного МК.

6 loiter   (09.01.2012 23:18) [Материал]
Может BASCOM 1.11.9.8 что то глючит потому что бесплатно скачал ????

7 loiter   (10.01.2012 21:03) [Материал]
И ещё странно - снимаю землю с МК (оставляя землю со стороны диода) диод загорается ????? ПОМОГИТЕ.Получается при отключенном МК - ток проходит с VCC на DP2 - так и должно быть или это аномалия ??????

8 loiter   (11.01.2012 19:49) [Материал]
Извиняюсь за все предыдущие глупые вопросы,правда пока остаётся загадкой, почему прошить мегу8 получилось только с помощью Khazama..... BASCOM и AVR Burn-O-Mat отказываются работать...?

9 Space   (13.01.2012 15:12) [Материал]
лично я затрудняюсь ответить, если бы всё что ты там делаешь было у меня перед глазами я бы разобрался, а так думать что у тебя за проблема тяжело.

10 dem-sergey   (09.06.2012 08:41) [Материал]
У меня прога почему то не запускается. Уже скачал с официального сайта, все равно не запускается.

1-10 11-11
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]