Ответ: Даю немного информации. (См. внутри). Пользоваться не советую. Сам искал легких путей в PIC микроконтроллеры. Поработал немного с PIC basic ом и перешел на ассемблер для PIC (Правда у меня есть опыт работы с рядом других ассемблеров)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Alex Ant 01 октября 2003 г. 10:55
В ответ на: ищу информацию о PICBasic И Basic Stamp отправлено alex_Zh 30 сентября 2003 г. 23:10

Например! Вот это
Device 16f73
dim a,b
a=a*b

компилируется так:

;--------------------------------
;-- L.E.T PIC BASIC PRO V7.00 --
;--------------------------------
LIST P=16F73 , w=2, x=on, r=DEC

#include "P16F73.inc"
#include "14bit.inc"

_A Equ 41
_B Equ 42
;A=A*B
Mov@fw _A
Mov@wf 33
Mov@fw _B
Mov@wf 32
Clrw
Addwf@W 33
Decfsz@F 32
Goto $-2
Mov@wf _A
@Fin Clrwdt
Sleep
F@Goto @Fin
END
T.е. Умножение на число выполняется соответствующим количеством сложений (Так в первом классе средней школы считают). (Транслирует он в свои макрокоманды, но по мнемоника их близка к родным пиковским командам и полностью понятна)

Ну а теперь ВНИМАНИЕ НА ЭКРАН.
Вот это:
Device 16f73
dim a,b
a=a*(b+1)

КОМПИЛИРУЕТСЯ ТАК!!!
;--------------------------------
;-- L.E.T PIC BASIC PRO V7.00 --
;--------------------------------
LIST P=16F73 , w=2, x=on, r=DEC

#include "P16F73.inc"
#include "14bit.inc"

_A Equ 41
_B Equ 42
;A=A*(B+1) *
Mov@fw _A
Mov@wf _A
@Fin Clrwdt
Sleep
F@Goto @Fin
END
T.е. a=a*(b+1) компилируется как a=a. Ну допустим, не понимает он скобки. Но хотя-бы отругаться можно, что такое использование скобок недопустимо.

Ну и в заключении:
Device 16f73
dim a,b
a=(b+1)

компилируется так:

;--------------------------------
;-- L.E.T PIC BASIC PRO V7.00 --
;--------------------------------
LIST P=16F73 , w=2, x=on, r=DEC

#include "P16F73.inc"
#include "14bit.inc"

_A Equ 41
_B Equ 42
;A=(B+1) *
Mov@wf _A
@Fin Clrwdt
Sleep
F@Goto @Fin
END

Т.е. берется значение аккумулятора (совершенно случайное в этот момент) и заносится в переменную a.
Ну у любого компилятора могут быть ограничения. Если PIC basic не может корректно работать со скобками, то НУЖНО СООБЩАТЬ ОБ ОШИБКЕ КОМПИЛЯЦИИ.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru