Главная » Статьи » Программирование » Программирование в 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) | | |
Просмотров: 2748 | Комментарии: 11 | |
Всего комментариев: 11 | 1 2 » | ||||||||
|