----------------------------------------------------------------------------------------------
4 января 2008
1. При обозначении констант может применяться может применяться бинарный формат (префикс &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
2. Софтверный симулятор у меня почему-то работал криво - уходил в непрерывный запуск, когда я пытался выполнять операторы пошагово. Однако есть приятная возможность - объектный файл (расширение .obj), получающийся при компиляции, можно загрузить в AVR Studio 4, и уже отлаживать программу там, используя аппаратный эмулятор AVR JTAGICE mkII. Отлаживать можно прямо по исходному коду на Бейсике, работают точки останова, пошаговое выполнение. Можно открыть также окно View\Disassembler, и отлаживать программу по ассемблерным инструкциям, там также видны строки программы на Бейсике. Неудобство только в том, что запускать AVR Studio и открывать OBJ-файл надо вручную.
----------------------------------------------------------------------------------------------
5 января 2008
3. Оператор PRINT выводит текст в RS-232 - аппаратный первый UART:
PRINT "Hello world!"
Если нужно выводить во второй UART или в софтверный UART, нужно указывать номер канала:
PRINT #1, "test"
Можно одной строкой выводить несколько переменных, перечислив их через точку с запятой (при применении точки с запятой не добавляется перевод строки и возврат каретки):
var1 = "this var1"
var2 = "this var2"
PRINT var1; " "; var2
4. Для удобства (как во всех стандартных в бейсиках) можно "удлинять" строку программы символом подчеркивания:
Print "You can also use multiple" _
; "lines using _"
Print "use it for long lines"
5. Опция OVERLAY при задании переменных позволяет размещать переменные по заданному адресу, либо ссылаться на другие переменные, например:
Dim L As Long , Bd As Long
Dim Uh As Byte At L + 1 Overlay
Bd = 38400 ' baud wanted
L = 8000000 / Bd ' divide crystal freq. by the wanted baud rate
L = L / 16 'divide the result by 16
L = L - 1 'and subtract 1
Ubrrl = L 'when you assign a long it will only write the BYTE
Ubrrh = Uh 'we use an overlayed variable that is the high byte
или еще пример из help:
Dim x as Long at $60 'long uses 60,61,62 and 63 hex of SRAM
Dim b1 as Byte at $60 OVERLAY 'b1 uses 60 cell of SRAM
Dim b2 as Byte at $61 OVERLAY 'b2 uses 61 cell of SRAM
как видно в этом примере, участки памяти для хранения переменных могут пересекаться, что может привести к ошибкам.
6. Удобный PDF-просмотрщик!
7. У демо-версии ограничение на объем кода 4096 байт.
|