New Limited 12-bit Core Support
PicBasic Pro version 2.40 added limited support for all the 12-bit core PIC Microcontrollers. The reason the support is limited is that the resources on the 12-bit core devices are limited. Some of these limits include only a two-level hardware stack and very small amounts of general purpose RAM memory. The code page size is also small at 512 bytes. There is also a limitation that calls and computed jumps can only be made to the first half (256 words) of any code page. These limitations have made it necessary to eliminate some compiler commands and modify the operation of some others.
While many useful programs can be written for the 12-bit core PIC Microcontrollers using the PicBasic Pro Compiler, some applications will not be suited for these devices. Choosing a 14-bit or 16-bit core device with more resources will, in many cases, be the best solution.
Commands that are not supported for the 12-bit core PIC Microcontrollers:
|ADCIN||No internal ADCs|
|DATA||No on-chip EEPROM|
|DTMFOUT||Not enough RAM or stack|
|EEPROM||No on-chip EEPROM|
|FREQOUT||Not enough RAM or stack|
|HPWM||No hardware PWM|
|HSERIN||No hardware serial port|
|HSEROUT||No hardware serial port|
|ON INTERRUPT||No Interrupts|
|READ||No on-chip EEPROM|
|READCODE||No flash devices|
|SERIN2||Not enough RAM or stack|
|SEROUT2||Not enough RAM or stack|
|USBIN||No USB devices|
|USBINIT||No USB devices|
|USBOUT||No USB devices|
|WRITE||No on-chip EEPROM|
|WRITECODE||No flash devices|
|XIN||Not enough RAM or stack|
|XOUT||Not enough RAM or stack|
Trying to use these commands with 12-bit core devices will result in numerous errors. If you must use one of these commands, choose a 14-bit or 16-bit core device with more resources.
Commands that have had their operation modified are:
- DEBUG, DEBUGIN - The SERIN2 and SEROUT2 modifiers are not supported for these commands because of memory and stack size limits.
- LCDOUT - The SEROUT2 modifiers are not supported for this command because of memory and stack size limits.
- OWIN, OWOUT - The REP, SKIP and STR modifiers are not supported for these commands because of memory and stack size limits.
- SEROUT - The open drain modes are not available due to TRIS register constraints.