Pic Micro Pascal

Pic Micro Pascal
Pic Micro Pascal
개발자필리프 파테노트
안정된 릴리스
2.0.6 / 2014년 9월 9일, 7년 전(2014-09-09)
운영 체제Win32
유형컴파일러
면허증.프리웨어
웹 사이트www.pmpcomp.fr

Pic Micro Pascal PMP는 PIC 마이크로 컨트롤러용 무료 Pascal 크로스 컴파일러입니다.설치된 마이크로칩 테크놀로지 MPLAB 스위트와 연동하도록 설계되어 있으며 자체 IDE(Scintilla 기반)가 있으며 고도로 최적화된 컴파일러입니다.

PIC10, PIC12, PIC16, PIC16 확장, PIC18의 8비트 프로세서만을 대상으로 하고 있습니다.

개발의 주요 축은 하드웨어 레지스터를 인터페이스하기 위한 특별한 내장 기능과 절차를 피하는 것이었습니다.이러한 레지스터는 변수로 직접 액세스 되고 래퍼 함수는 없으며 방출된 코드는 매우 컴팩트합니다.

PMP에는 어셈블러나 링커는 포함되어 있지 않습니다.설치된 Microchip MPLAB 스위트와 연동하도록 설계되어 메모리 매핑 초기화에 MPASM 및 MPLINK .lkr 파일을 직접 사용합니다.V2에서는 프로세서 기능과 표준 레지스터 정의를 위한 자체 데이터베이스가 제공됩니다.

PMP는 GPUTILS 스위트도 지원합니다.

언어 기능

PMP는 객체 지향 프로그래밍을 지원하지 않지만 RECORD에는 메서드가 있을 수 있습니다.

2014년 현재 구현에서는 명령어와 단위 개념별로 여러 파일 컴파일을 지원합니다.PMP는 고유한 기능을 지원합니다.EEPROM에서 변수를 선언한 후 다른 변수로 투과적으로 사용할 수 있습니다(일부 제한 있음).

PMP의 데이터 유형:

  • 단순 레코드(서브셋): RECORD
  • 비트 부울란: BOULLAN
  • 부호 없음 및 부호 있음8비트 정수형: CHAR, BYTE, SHORTINT
  • 부호 없음 및 부호 있음16비트 정수형: WORD, INTEGER
  • 부호 없음 및 부호 있음32비트 정수형: LONGWORD, LONGINT
  • 열거.
  • 어레이(1차원):어레이
  • 문자열(가변 길이): STRING
  • 포인터(필수)
  • 부동소수점 변수 및 연산(PIC16 및 PIC18 한정): 2개의 FP 형식, 48비트 내부(REAL) 및 IEEE 32비트 형식(SINGLE)의 서브셋.두 형식 모두 무한 및 NaN을 처리하지 않습니다.

언어 방언

PMP 구문은 OOP 이외의 Turbo Pascal 또는 Delphi 구문과 매우 유사하며 일부 타깃 프로세서 기능(비트 조작 ...)을 지원하는 확장 기능도 있습니다.

프로그램. 비콘;  사용하다   A2D;  변화하다   I_IR_수신기 : 부울 @포트.4;                        // TSOP1736 IR 수신기   O_LED_수신중 : 부울 @포트.0;                      // 수신 진행 중   O_LED_ERROR : 부울 @포트.1;                          // 수신 오류   O_PWM_A : 부울 @포트.4;                              // 미국 변환기 위상 A로 PWM 전송(주소 변경 불가)   O_PWM_B : 부울 @포트.5;                              // PWM에서 US 변환기 단계 B로(주소를 변경할 수 없음)   { 비콘 주소 딥 스위치 }   I_ADDR_0 : 부울 @포트.2;   I_ADDR_1 : 부울 @포트.5;  계속   LOW_BATT_SENSOR_CHANNEL = ANS0;                          // 배터리 측정 채널(RA0)    { LED ON/OFF 값}   cLED_ON = 진실의;   cLED_소등 = 거짓의;    // 입력 핀   TRISA_MASK = [I_NOT_OPTION_SERIAL, I_ADDR_0, I_ADDR_1];   TRISB_MASK = [I_IR_수신기];   TRISC_MASK = []; 시작한다.   ...   포트 := 0; // 모든 출력 준비   트리사 := TRISA_MASK; // 핀 방향 설정   ...    A2D_Init([LOW_BATT_SENSOR_CHANNEL], 5, adcFosc16, adm8비트, 어드밴스 Vdd);    (19200); // 시리얼 포트 설정   할당하다(산출량, 시리얼 포트_출력);    기입하다('헬로우 월드!');   ... 끝.. 

버전 1.6 이후 일부 언어 "확장"은 (명시적인 활성화와 함께) 사용될 수 있으며, 대부분은 오베론 또는 모듈라 같은 다른 파스칼 유사 언어에서 유래합니다.

...   위해서 I  SomeVar 하다 < >진술들> (* SomeVar는 임의의 변수 또는 열거형 *)   위해서 I := X 로. Y 타고 n 하다 < >진술들> (* 변수 스텝 값 지정 *)   고리 < >진술들> 끝. (* Forever loop *)   한다면 조건 1 그리고나서 < >진술들> ELSIF 조건 2 그리고나서 < >진술들> (* ELSE IF의 단축키 *)   돌아가다 일부 결과 (* 함수의 결과값 할당 및 종료 *) 

역사

PMP는 Philippe Paternotte에 의해 2006년에 만들어져 현재는 프리웨어로, 장래에는 프리소프트웨어로 발매되고 있다.최신 버전은 2014년 [1]9월 2.0.6입니다.

PMP는 2015년 [2]3월 SERVO Magazine에 기사로 실렸습니다.

레퍼런스

  1. ^ 참조 매뉴얼, PPA, 2014, Pic Micro Pascal V2용 설명서
  2. ^ 2015년 3월 서보 매거진 기사, 토마스 헨리, 2015년 [1]

외부 링크