Pages created and updated by 
Terry Sturtevant 
	 Date Posted: 
	 
	 May 12, 2017
	 
	 
| Page #  | Location | Error | 
| Chapter 1  | ||
| 6 | 3rd line from bottom of page | decf fp_cnt,F,A should be decf lp_cnt,F,A | 
| 13 | immediately above 1.5.1 heading | replace special function with file "... 0x10 refers to the file register at address 0x10." | 
| 14 | Figure 1.4 | figure is an approximate memory map; in particular, the access bank composition varies according to processor as explained in the 3rd paragraph on the next page | 
| 15 | paragraph 3, line 3 | replace PIC18F452 with PIC18F458 "... the PIC18F458 has 1536 [six banks] bytes..." | 
| 17 | bottom of table | missing reference notation on last line, should be: (1) Note. This is not a physical register | 
| 22 | paragraph 2, sentence 2 | access bank composition varies according to the processor. For the PIC18F452, the access bank consists of lowest 128 GPRs and the highest 128 SFRs. | 
| Chapter 2  | ||
| 40 | section 2.4 - bad typesetting; headings are improperly spaced; many are widowed/orphaned | items in bold are headings and because of the bad typesetting could be misleading. e.g. end at the bottom of page 41 should be the heading on the following page but appears to be the 3rd line in a code snippet | 
| 43 | under radix | hex, dee, or oct. should be hex, decimal, or octal. | 
| 44 | Table 2.2 | more useful if directives were sorted according to memory type; missing DE | 
| 44 | Table 2.3 | oetal_digits should be octal_digits | 
| 44 | Table 2.3 - table title | MPASMD should be MPASM | 
| 44 | Table 2.3 | swap location of table with cblock ... endc construct | 
| 45 | second cblock | double 1:2 should be double1:2 | 
| 45 | data directive - 1st sentence | "The data directive can also be written as da. " However, the data examples given (string, address, constant) are not consistent with the DA entry in table 2.2 which implies that DA is string only. | 
| 61 | last line | ox20 should be 0x20 | 
| 65 | program variable convention | n1_1 and m1_1 should be n1_l and m1_l to indicate low word | 
| 66 | section 2.9.1 - case 1 - if you exit out of the loop, then by definition it is not an infinite loop. Confuses case 1 and case 4. | Remove the sentence "In some applications, the user may add .... to get out of the infinite loop." | 
| 70 | bottom of page and 1st paragraph of page 71 | For bn -10 and bn 10: 
 | 
| 75 | program | Program should be rewritten for readability and efficiency. At minimum, remove the redundant code: goto replace ;no goto next_i ;yes replace movwf arr_max,A ;no, update the array max next_i incf i,F,A ;yes | 
| Chapter 3 | ||
| 111 | Figure 3.24 title | Diable should be Disable | 
| Chapter 4 | ||
| TBA | ||
| Chapter 5 | ||
| omit chapter from reading | ||
| Chapter 6 | ||
| 249 | section 6.4, line 2 | the number of edge triggered interrupts depends on the PIC18 model, the PIC18F452 only has 3 | 
| 249 | section 6.4.2 | the PIC18F452 does not have PIR3, PIE3, IPR3 | 
| 250 | section 6.4.4, paragraph 1, last line | "because its request appears in both the high-priority and low-priority logic circuit" "because its request appears in the high-priority logic circuit" | 
| 252 | Figure 6.2b, Note 2 | add PIC18F452 does not have INTEDG3 or INT3IP. | 
| 252 | Figure 6.2c, Notes | Note 1 is not accurate as PIC18Fxx2 includes the 452 which has an INT2. Note 2 add: PIC18F452 does not have INT3 enable and flag bits. | 
| 254 | Figure 6.3b | PIC18F452 does not have a CMIF flag i.e. Note 2 from Figure Figure 6.4b should be here as well. | 
| 254 | Figures 6.3c, 6.3d | PIC18F452 does not have a PIR3 register | 
| 257 | Figures 6.4c, 6.4d | PIC18F452 does not have a PIE3 register | 
| 260 | Figures 6.5c, 6.5d | PIC18F452 does not have a IPR3 register | 
| 263 | section 6.5.5, line 2 | TMROH should be TMR0H | 
| 263 | section 6.5.5, line 3 | TMROL should be TMR0L | 
| 263 | section 6.5.5, line 5 | TOCKI should be T0CKI | 
| 263 | section 6.5.5, line 6 | TOCON should be T0CON | 
| 263 | section 6.5.6 | Comparator interrupt should be Comparator interrupt (not all PIC18 devices have this interrupt) | 
| 265 | Figure 6.6, title | INTO should be INT0 | 
| 265 | program, line 7 | "retfie" after "goto int0_ISR" is not required | 
| 266 | example 6.1 program, lines 2-7 | replace lines 2-7 with: incf count,F ;increment count btfsc count,4 ;was count 15? clrf count ; yes, then clear count or simply with: incf count,F ; increment count | 
| 266 | example 6.2 program | 1. align #include with column 1; first bracket should be "<". 2. "retfie" after "goto tmr1_ISR" is not required 3. initialize TMR1H before TMR1L in mainline | 
| 267 | example 6.2 program | 1. ISR could be modified similar to example 6.1 shown above 2. initialize TMR1H before TMR1L in tmr1_ISR | 
| 267 | example 6.2 program | program in text does not match program on CD | 
| 271 | last line | service routine, The should be service routine. The | 
| Chapter 7 | ||
| 277 | paragraph 2, line 1 | can be proceeded should be can proceed | 
| 277 | section 7.3 weak | should explain memory mapped I/O vs isolated I/O [aka direct I/O or peripheral I/O] | 
| 288 | paragraph 1, line 1 | Example 5.3 demonstrates should be Example 6.1 demonstrates [5.3 doesn't exist; not sure if 6.1 is the correct reference?] | 
| 288 | paragraph 1, line 1 | Example 6.6 provides should be Example 6.3 provides [6.6 doesn't exist; not sure if 6.3 is the correct reference?] | 
| 293 | paragraph 4, line 5 | darken should be darker | 
| 303 | last paragraph, line 1 | Question on page 300 said 2 x 20 LCD display not the 4 x 20 discussed in this sentence. | 
| 7.8 onward TBA | ||
| Chapter 8 | ||
| 338 | Figure 8.3 | pin label T13CKI should be T1CKI | 
| 345 | Figure 8.7 | pin label T13CKI should be T1CKI | 
| 345 | Section 8.3.4 | replace all references to T13CKI with T1CKI ; note this a problem in the Timer3 section of the datasheet as well | 
| 8.4 onward TBA | ||
| Chapter 10 | ||
| 446 | Not an error per se, but also see page 515 (bullet points) | |
| 448 | Not an error per se, but also see page 516 (SSPCON1) | Look at SSPM3:SSPM0 | 
| 455 | Duplicate Section 10.3! | Second one should be 10.4 | 
| Chapter 11 | ||
| 515 | Not an error per se, but also see page 446 (bullet points) | |
| 516 | Not an error per se, but also see page 448 (SSPCON1) | Look at SSPM3:SSPM0 | 

 
	 
	 
 

Wilfrid Laurier University
© 2019 Wilfrid Laurier University