Errata 'Microcontrollers en de taal C'
Vierde druk, 2011
-
Op pagina 56: staat in het derde grijze blok:
for ( sum-0,i=0; i<n; sum+=i,i++) ;
for ( sum=0,i=0; i<n; sum+=i,i++) ;
-
De teller van formule 23.1 is niet correct, vervang de uitdrukking boven de streep:
R2R3 + R1R3door:R2R1 + R2R3
Derde druk, 2010
-
Bij tabel 17.1 op pagina 178 moet in de linker tabel de tweede regel vervangen worden
door:
fgets
()
leest een regelfputs
()
schrijft een string -
Op de voorlaatste regel op bladzijde 272 staat:
"Voor de 24-uurs notatie is bit 6 hoog en stellen de bits 4 tot en met 0 de uren voor."Dit moet zijn:"Voor de 12-uurs notatie is bit 6 hoog en stellen de bits 4 tot en met 0 de uren voor."
-
In code 11.7 staat op regel 33:
tmp = 1;
tmp = value;
-
In figuur D.8 op pagina 340 moeten in de tabel de
waarden van uitgang
qn
geïnverteerd worden.
Tweede druk, 2009
-
Op pagina 225 is een deel van de titel van code 19.2 weggevallen. De complete titel luidt:
Code 19.2: Aansturing LCD in 8-bit mode met bewegende tekst. Regel 1 tot en met 29 is identiek met code 19.1.
-
Code 22.2 regel 6 en 7 moet zijn:
!_BV(COM01)| _BV(COM00) | // toggle output !_BV(CS02) | _BV(CS01) | !_BV(CS00); // prescaling Fcpu/8
-
Code 22.3 regel 9 moet zijn:
!_BV(CS02) | _BV(CS01) | !_BV(CS00); // prescaling Fcpu/8
-
Het commentaar bij code 22.4 regel 7 is niet correct. Dit moet zijn:
TCCR0 = !_BV(WGM01)| _BV(WGM00) | // phase correct PWM
-
Code 22.4 regel 9 moet zijn:
!_BV(FOC0) | !_BV(CS02) | _BV(CS01) | !_BV(CS00); // prescaling Fcpu/8
-
In figuur 22.11 zijn de aansluitingen van OC1A en OC1B niet correct.
Deze figuur is wel correct:
-
Code 22.8 regel 14 moet zijn:
TCCR0 = _BV(WGM01) | _BV(WGM00) | // fast PWM
-
Code 22.13 regel 13 moet zijn:
TCCR1A = _BV(COM1A1)| !_BV(COM1A0)| _BV(COM1B1)| !_BV(COM1B0)| // clr OCR1x up/set OCR1x down
-
Code 23.10 regel 14 moet zijn:
TCCR0 = _BV(WGM01)| !_BV(WGM00)| // CTC mode
-
Code 23.11 regel 14 moet zijn:
TCCR0 = _BV(WGM01)| !_BV(WGM00)| // CTC mode
Deze fout geldt ook voor de eerste druk.
-
Op pagina 58 staat:
#define mod(x,y) ( ((x)/(y)>0) || ((x)%(y)==0) ? (x)%(y) : ((x)%(y))+(y) )
Dit moet zijn:#define mod(x,y) ( ((x)%(y)==0) ? 0 : (((x)/(y))<0 ) ? ((x)%(y))+(y) : (x)%(y) )
Eerste druk, 2008
-
code 7.3 regel 5 moet zijn:
int i, n, prime=1;
code 7.3 regel 11 moet zijn:prime=0;
-
figuur 20.4 acroniem bij bit 3 moet zijn :
USBS
-
code 20.1 regel 19 moet zijn:
uart_init(UBRR_VALUE);
-
de notitie in de marge op bladzijde 81 luidt:
Verwar & niet met && enDit moet zijn:
verwar | niet met ||.
De symbolen & en && zijn
beide EN-functies. Alleen is &
de logische EN en && de
bitsgewijze EN.
Op dezelfde manier is | de
logische OF en || de
bitsgewijze OF.
Verwar & niet met && en
verwar | niet met ||.
De symbolen & en && zijn
beide EN-functies. Alleen is &&
de logische EN en & de
bitsgewijze EN.
Op dezelfde manier is || de
logische OF en | de
bitsgewijze OF. -
Eerste paragraaf 14.3 op bladzijde 148 eindigt met "vijf
char
's". Dat moet zijn "driechar
's". - Op pagina 120 staat "de bits ISC01 en ISC01" dat moet zijn "de bits ISC01 en ISC00".
- Op pagina 294 staat bij figuur F.2 "De code in" dat moet zijn "De code in".
-
Op pagina 27 staat op regel zes van boven "... staat op regel 2 ..." dat
moet zijn "... staat op regel 1 ...".
Voeg voor regel 25
i=0;
toe. -
Op pagina 107 ontbreekt in code 11.4 de initialisatie van
i
. Voeg voor regel 25i=0;
toe.