Should you notice a
conflict between my narration and the official Microchip documentation, ALWAYS refer to
the latter. However please send me an email if a conflict arises.
Errata
- Page 18, the final text paragraph, just above the code listing, refers to the "AD1PCGF " SFR. This should be "AD1PCFG" .
- Page 202, replace the statement:
#define U_TX 0x0400 // enable tx, clear all flags
with
#define U_TX 0x1400 // enable tx & rx, clear all flags
So that both RX and TX are enabled, which is necessary for the following demo to work. - Page 210, replace the statement:
#define home() putsU2( "\x1b[1,1H")
with
#define home() putsU2( "\x1b[1;1H")
Notice the comma separating the two "1" digits is changed in a semicolon. - Page 226, replace the code segment:
void LCDinit( void)
{
// PMP initialization
PMPEN = 0x0001
with
void initLCD( void)
{
// PMP initialization
PMAEN = 0x0001
Further down on the same page replace:
#define PMDATA PMDIN1
with
#define PMDATA PMDIN - Page 230, replace the statement:
#define putLCD( d) LCDwrite( LCDDATA, (d))
with
#define putLCD( d) writeLCD( LCDDATA, (d)) - Page 252, replace the statement:
#define AINPUTS 0xffef // Analog inputs POT, TSENS
with
#define AINPUTS 0xffcf // Analog inputs POT, TSENS - Page 392, in function putcV() replace the statement:
const char *pf;
with
const unsigned char *pf;