|  |  | Known issues in PBP 2.60A
						
							| 
 |  
							| Devices affected:16F1947 Commands affected: HSERIN2, HSEROUT2
 Date encountered: 01/2011
 Error class: Safe (always reported)
 
							Library routines were omitted for the 16F1xxx parts 
							that can make use of HSERIN2 and HSEROUT2 commands.  
							A compile error will result when trying to use these 
							commands. 
							Fix: 
							We anticipate the timely release of a patch to fix 
							this.  Check back in a few days, or contact 
							support. |  
							| 
 |  
							| Devices affected: All 
							Enhanced 14-Bit parts (16F1937, 1827, etc.) Commands affected: HPWM
 Date encountered: 11/2010
 Error class: Apparent (no error, but consistently fails 
							initial testing)
 
							HPWM miscalculates the timer prescaler when using 
							higher frequency system clocks and relatively low 
							frequency output for PWM.  (For example:  
							system osc = 32MHz and PWM output = 2KHz.  The 
							actual PWM output will be 500Hz.) Fix: |  
							| 
							
							Contact support if you can't obtain a usable PWM 
							frequency.  We have a library modification, but 
							we would like to test it in more cases before we 
							publish or issue a patch. 
 |  
  			  
  			    | Below are previously-known issues in PICBASIC PRO Compiler 2.60 (All issues listed below have been fixed in version 2.60A. If you are a user of version 2.60, you should download the patch to bring your version to 2.60A.)
 |  
  			  
  			    | 
 Devices affected: All Enhanced 14-Bit parts (16F1937, 1827, etc.) when using MPASM 5.36Commands affected: All commands
 Date encountered: 07/2010
 Error class: Critical (compile errors in most cases, but some silent bugs)
 
  			        Microchip's release of MPASM 5.36 changes functionality of the assembly operator "high" for the enhanced 14-bit MCUs. This thouroughly wrecked our command and macro libraries for all families of parts that share the enhanced 14-bit instruction set. Fix: 
  			        We released a patch within a few days of being notified of this issue. All users should use the patch to update from 2.60 to 2.60A. |  
  			    | 
 Devices affected: 18F2420/2520/4420/4520  FamilyCommands affected: WRITECODE
 Date encountered: 03/2010
 Error class: Apparent (no error, but consistently fails initial testing)
 
  			        The WRITECODE command will not write to all locations of code space because the block size is declared incorrectly for this family. Write operations will seem to ignore portions of code space, while writing successfully to other locations. Workaround: 
  			        In the PBP install folder, locate the .INC file for the device that you are compiling for (18F2420.INC, 18F2520.INC, 18F4420.INC, or 18F4520.INC). Open the file in a text editor and find the line "BLOCK_SIZE EQU 64". Change the setting to 32: "BLOCK_SIZE EQU 32". |  
  			    | 
 Devices affected: PIC18F46J11 FamilyCommands affected:  ADCIN
 Date encountered: 12/2009
 Error class: Apparent (no error, but consistently fails initial testing)
 
  			        The ADCIN command always doubles the channel 
  			          parameter.  AN0 reads correctly, channel-1 reads AN2, channel-2 
  			          reads AN4, etc. DEFINE ADC_CLOCK writes to the wrong register, 
  			          breaking all ADCIN commands.  Even if you omit the define, it still 
  			          writes a default value to the wrong register. Workaround: 
  			        For the DEFINE ADC_CLOCK issue, always write "DEFINE 
  			          ADC_CLOCK  0" and then set the actual clock selection by writing to 
  			          the ADCON1 register using direct access: 
  			          DEFINE ADC_CLOCK  0    ' 
  			            safe settingADCON1 = %10000011 ' set ADC clock 3, right justify
 For the channel select, you could read even-number channels with a 
  			          half-value setting.  The better solution is to use a manual method 
  			          by manipulating the registers directly to perform the conversion: 
  			          ADCON0 = %00000101      ' set to channel-1PAUSEUS 50                   
  			            ' pause to settle
 
 ADCON0.1 = 1                 
  			            ' start conversion
 DO WHILE ADCON0.1 = 1   ' wait for conversion
 LOOP
 
 adval.highbyte = ADRESH   ' store result
 adval.lowbyte = ADRESL
   |  
  			    | 
 Devices affected: standard 14-bit instruction set 
  			        (PIC16, PIC12)Commands affected:  SERIN/SEROUT
 Date encountered: 10/2009
 Error class: Apparent (no error, but consistently fails initial testing)
 
  			        Under some circumstances, SERIN and SEROUT commands 
  			          are subject to baud rate errors that are beyond those allowed in the 
  			          RS-232 specification.  This will mostly affect applications where 
  			          the baud rate is 9600 and the system clock is 4MHz or less.  
  			          Symptoms mostly occur on receive (SERIN), and manifest as garbage or 
  			          incorrect data being returned. Workaround: 
  			        The easiest, safest fix is to switch to an 
  			          alternative serial command (SERIN2/SEROUT2, DEBUGIN/DEBUG, or HSERIN/HSEROUT). If this isn't possible due to the constraints of 
  			          your design, contact  support.  There is a library fix that can be implemented 
  			          immediately, but it will interfere with the official patch when 
  			          released.  A patch is in the works, but we are waiting on a few 
  			          other improvements that we want to include.   |  
  			    | 
 Devices affected: 16F1826, 16F1827Date encountered: 08/2009
 Error class: safe (always reported)
 
  			        There are invalid port aliases in the PBP header 
  			          file for these parts.  The following assembly errors will be 
  			          generated: 	Symbol not previously defined (PORTC)
	Symbol not previously defined (TRISC) Workaround: 
  			        Edit the files 16F1826.BAS and 16F1827.BAS (found in 
  			          the PBP install folder) as follows: 	PORTL   VAR     PORTB
	PORTH   VAR     PORTA  ' PORTC invalid, change to PORTA
	TRISL   VAR     TRISB
	TRISH   VAR     TRISA  ' TRISC invalid, change to TRISA |  
  			    | 
 Command affected: WRITEDate encountered: 07/2009
 Error class:  safe (always reported)
 
  			        When a WRITE command is attempted with a word variable in the value position, but the WORD modifier is omitted.  
  			          Also occurs when a calculation is used in the value position, as this may 
  			          force a word temp variable to be used.  (Correct operation is for the 
  			          command to write only byte-0 of the variable when the WORD modifier is 
  			          omitted.) 	wordvar    VAR    WORD 	WRITE 0, wordvar One of the following assembly errors will sometimes 
  			          be generated: 	... symbol not previously defined (WRITE) 	... undefined symbol 'write' Workaround: 
  			        Add the following define at the top of the code.  
  			          This define will have no effect on unaffected code, nor will it increase 
  			          code space usage. 	DEFINE  WRITE_USED  1 |  
  			    | 
 Previous version 2.50C has no bug reports, but is 
  			        incompatible with MPLAB versions 8.20 and later.  Versions 2.50, 2.50A, 
  			        and 2.50B each have minor issues that I won't list here as they have been 
  			        fixed in the downloadable patch.  Use the 
  			        patch! |  
  			    | 
 Windows 64-bit compatibility requirements: 
  			        Users of 64-bit systems must instruct PBP to use the Microchip 
  			          Assembler, MPASMWIN.  In MicroCode Studio, this is a simple check 
  			          box setting in the Compile and Program Options dialog.  On the 
  			          Compiler tab, check the box labeled "Use MPASM".  MPLAB must be 
  			          installed.  It can be downloaded from the Microchip site or 
  			          installed from your PBP install CD. |  |