BASCOM-AVR IDE |
![]() |
Добавил(а) microsin |
Бесплатная для персонального использования IDE, позволяющая программировать на BASIC для AVR (есть также версия для платформы 8051 или MCS51). Обладает неожиданно продвинутым функционалом. Перечислю некоторые из имеющихся возможностей: - поддерживаются кристаллы ATtiny, ATmega и старые традиционные AVR (AT86RF401, AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90CAN128, ATtiny22, ATtiny12, ATtiny13, ATtiny15, ATtiny25, ATtiny45, ATtiny85, ATtiny26, ATtiny2313, ATMEGA8, ATMEGA16, ATMEGA32, ATMEGA48, ATMEGA88, ATMEGA168, ATMEGA64, ATMEGA103, ATMEGA128, ATMEGA161, ATMEGA162, ATMEGA163, ATMEGA165, ATMEGA169, ATMEGA323, ATMEGA603, ATMEGA2560, ATMEGA2561, ATMEGA8515, ATMEGA8535); Пробную версию BASCOM-AVR можно скачать с сайта компании mcselec.com. Она не имеет функциональных ограничений, за исключением лимита на объем кода 4096 байт, запрещается только удалять из кода ссылки на компанию MCS Electronics, и отсутствуют исходники для дополнений от других компаний. При обозначении констант может применяться бинарный формат (префикс &B) и шестнадцатеричный (префикс &H), например, каждая из 4-х строк записывает в порт B одно и то же число: Portb = 3 ' activate pull up PINB.0 and PINB.1 Portb = &B11 ' activate pull up PINB.0 and PINB.1 Portb = &B00000011 ' activate pull up PINB.0 and PINB.1 Portb = &H03 ' activate pull up PINB.0 and PINB.1 Софтверный симулятор у меня почему-то работал криво - уходил в непрерывный запуск, когда я пытался выполнять операторы пошагово. Однако есть приятная возможность - объектный файл (расширение .obj), получающийся при компиляции, можно загрузить в AVR Studio 4, и уже отлаживать программу там, используя аппаратный эмулятор AVR JTAGICE mkII. Отлаживать можно прямо по исходному коду на Basic, работают точки останова, пошаговое выполнение. Можно открыть также окно View\Disassembler, и отлаживать программу по ассемблерным инструкциям, там также видны строки программы на Basic. Маленькое неудобство только в том, что первый раз запускать AVR Studio и открывать OBJ-файл надо вручную. Далее при внесении изменений в код и перекомпиляции AVR Studio предупреждает об этом и дает возможность перезагрузить код. Оператор PRINT выводит текст в RS-232 - аппаратный первый UART: PRINT "Hello world!"
Если нужно выводить во второй UART или в софтверный UART, нужно указывать номер канала: PRINT #1, "test" Можно одной строкой выводить несколько переменных, перечислив их через точку с запятой (при применении точки с запятой не добавляется перевод строки и возврат каретки): var1 = "this var1" var2 = "this var2" PRINT var1; " "; var2 Для удобства (как во всех стандартных реализациях языка Basic) можно "удлинять" строку программы символом подчеркивания: Print "You can also use multiple" _ ; "lines using _" Print "use it for long lines" Опция OVERLAY при задании переменных позволяет размещать переменные по заданному адресу, либо ссылаться на другие переменные, например: Dim L As Long , Bd As Long Dim Uh As Byte At L + 1 Overlay Bd = 38400 ' желаемая скорость L = 8000000 / Bd ' разделить частоту кварца на желаемую скорость L = L / 16 ' разделить результат на 16 L = L - 1 ' и вычесть 1 Ubrrl = L ' когда Вы присваиваете число long, это ' будет только байт (BYTE) Ubrrh = Uh ' мы используем overlayed переменную, которая ' является старшим байтом Еще пример из help: Dim x as Long at $60 'long использует ячейки с адресами ' 60,61,62 and 63 hex of SRAM Dim b1 as Byte at $60 OVERLAY 'b1 использует ячейку 60 SRAM Dim b2 as Byte at $61 OVERLAY 'b2 использует ячейку 61 SRAM Как видно в этом примере, участки памяти для хранения переменных могут пересекаться, что может привести к ошибкам. [Ссылки] 1. Микросхема W3100A-LF - контроллер сети Ethernet site:efo.ru. |