Статья №1
Что же такое Bаscom - это не интерпритатор, а мощный
компилятор, который переводит программу с Basic на язык,
понятный микроконтроллеру, симулирует скомпилированный код и
позволяет программировать микроконтроллер с помощью внешних
утилит или непосредственно из среды разработки.
Bascom - средство для быстрой разработки проектов, в нём встроена поддержка многих встроенных функций AVR:
- Поддержка шины i2c`
Cконфигурируем порт D, как выход. Затем в цикле Do-Loop подадим на него значение 255 (при этом все его биты примут значение 1), а после задержки 100 мс на порту D установим значение 0 (при этом все его биты примут значение 0). Через 100 мс цикл повторится, и светодиод, подключенный к одному из выводов порта D будет часто мигать.
На Рис.3 изображена схема устройства для отработки
программы «LED». Здесь видно, что светодиод HL1 через резистор
430 Ом (330-560 Ом) подключен к выводу PD6. Контакты Reset, VCC,
SCK, MISO, MOSI и GND необходимы для разъёма внутрисхемного
программирования. Следует отметить, что микроконтроллер работает от
внутреннего тактового генератора, поэтому в программе
программатора необходимо запрограммировать соответствующим образом
Fuse-files.
Рис.3 - Схема к программе "LED" Запустите Bascom и создайте с помощью File->New новый проект. Затем нажмите Options->Compiler->Chip и установите тип микроконтроллера – ATtiny2313 (см. Рис.4).
Далее в окне Output установите флажки согласно Рис.5.
Потом в окне Communication установите скорость обмена с внешними устройствами – 9600 бит/с и тактовую частоту генератора микроконтроллера – 4000000 Гц (см. Рис.6).
Затем вернитесь к окну Chip и нажмите кнопки “Add to Code “ и “Ok”, и все установленные настройки поместятся непосредственно в исходный код программы (см. Рис.7).
Под настройками пишется сама программа, которая имеет следующий вид:
Программа “LED” находится в папке приложение 1.
Рис.9 - Схема к программе "INT0" Допустим, что ваша программа должна проверять в цикле нажатие кнопки и в тоже время выполнять ещё какое-нибудь действие. Тогда возникает вероятность пропуска нажатия данной кнопки. Фиксировать всегда нажатие кнопки позволяют внешние прерывания Int0 или Int1. На Рис.10 представлена блок – схема программы “Int0”, на которой показано, что основная программа состоит из цикла включения и отключения светодиода через некоторые промежутки времени, пока кнопка не нажата. При нажатии кнопки включается подпрограмма обработки прерывания INT0, при выполнении которой на дисплей выводится какое – либо слово (например, Stop).
Программа имеет следующий вид:
Следует отметить, что внешние прерывания Int0, Int1 бывают трёх видов:
Config Intx = Low Lewel Config Intx = Fallig Config Intx = Rising Т.е. по низкому уровню сигнала, по спаду импульса и по фронту импульса. RETURN – возврат из подпрограммы прерывания. Не должно быть одного прерывания внутри другого прерывания, чтобы подпрограммы обработки не прерывали друг друга. Это требование определяется архитектурой микроконтроллеров AVR. Прерывания можно выключать, как все вместе (Disable Interrups), так и в индивидуальном порядке, и включать вновь в процессе выполнения программы, что необходимо в случае, если в коде присутствует фрагмент, выполнение которого нельзя прерывать (например, запись EEPROM). Командой Dim Wtime As Byte описывается переменная Wtime, но о переменных и многом другом я расскажу в следующей статье.
|