Embedded C Programming Techniques and Applications of C and PIC MCUS 1st Edition Mark Siegesmund download pdf
Embedded C Programming Techniques and Applications of C and PIC MCUS 1st Edition Mark Siegesmund download pdf
https://ebookultra.com/download/designing-embedded-systems-with-pic-
microcontrollers-second-edition-principles-and-applications-tim-
wilmshurst/
https://ebookultra.com/download/c-programming-for-the-absolute-
beginner-second-edition-mark-lee/
https://ebookultra.com/download/memory-as-a-programming-concept-in-c-
and-c-frantisek-franek/
https://ebookultra.com/download/programming-c-1st-edition-jesse-
liberty/
Theories of Programming Languages 1st Edition John C.
Reynolds
https://ebookultra.com/download/theories-of-programming-languages-1st-
edition-john-c-reynolds/
https://ebookultra.com/download/c-programming-5th-edition-mike-
mcgrath/
https://ebookultra.com/download/c-programming-an-introduction-rajiv-
chopra/
https://ebookultra.com/download/programming-with-visual-c-concepts-
and-projects-1st-edition-james-allert/
https://ebookultra.com/download/microinjection-methods-and-
applications-1st-edition-jill-c-sible/
Embedded C Programming Techniques and Applications
of C and PIC MCUS 1st Edition Mark Siegesmund
Digital Instant Download
Author(s): Mark Siegesmund
ISBN(s): 9780128013144, 0128013141
Edition: 1
File Details: PDF, 27.42 MB
Year: 2014
Language: english
Embedded C Programming
This page is intentionally left blank
Embedded C Programming
Techniques and Applications of C and
PIC® MCUS
Mark Siegesmund
Introduction�������������������������������������������������������������������������������������������������������xv
Chapter 1: C Overview and Program Structure........................................................1
C Source Code...................................................................................................... 1
Comments............................................................................................................. 1
Program Structure................................................................................................. 2
C Preprocessor Directives..................................................................................... 2
Functions............................................................................................................... 2
Declarations.......................................................................................................... 3
Statements and Expressions.................................................................................. 3
Time...................................................................................................................... 4
Typing Accuracy................................................................................................... 4
Text Formatting..................................................................................................... 5
Compatibility Notes.............................................................................................. 5
Summary............................................................................................................... 5
Quiz....................................................................................................................... 8
Chapter 2: Constants..........................................................................................11
Bits, Bytes, Etc.................................................................................................... 11
Bits....................................................................................................................11
Nibbles..............................................................................................................11
Bytes.................................................................................................................11
Memory Sizes...................................................................................................12
Syntax of C Constants......................................................................................... 12
Binary................................................................................................................12
Decimal.............................................................................................................14
Signed Integers..................................................................................................14
Hexadecimal.....................................................................................................15
Octal..................................................................................................................17
Floating Point....................................................................................................18
Fixed Point........................................................................................................18
Characters.........................................................................................................18
String of Characters..........................................................................................19
True and False...................................................................................................20
Const.................................................................................................................21
Contents
Tri-Graph Sequences........................................................................................... 21
Compatibility Notes............................................................................................ 23
Design Documentation........................................................................................ 23
Summary............................................................................................................. 23
Quiz..................................................................................................................... 25
Chapter 3: Preprocessor Directives.......................................................................27
Standard Preprocessor Directives....................................................................... 27
#define id text....................................................................................................27
#include <filename> or #include “filename”....................................................29
#ifdef #ifndef #else #endif #undef....................................................................29
#if #else #elif #endif.........................................................................................30
#error.................................................................................................................30
#nolist #list........................................................................................................31
Compatibility Notes............................................................................................ 31
Nonstandard Pragmas......................................................................................... 32
#warning...........................................................................................................32
#use delay..........................................................................................................32
About Frequency...............................................................................................32
#use rs232 (options)..........................................................................................33
#fuses options....................................................................................................33
#locate id=address............................................................................................34
#byte id=x #word id=x....................................................................................34
#bit id=x.y........................................................................................................35
#reserve address................................................................................................35
Bootloaders.......................................................................................................35
#rom address={data}.......................................................................................35
#id data..............................................................................................................36
Other Pragmas...................................................................................................36
Summary............................................................................................................. 37
Quiz..................................................................................................................... 39
Chapter 4: Data Variables and Types....................................................................43
Data Types........................................................................................................... 43
Characters.........................................................................................................43
Integers..............................................................................................................44
Compatibility Note...........................................................................................44
Integer Format...................................................................................................45
Enumerated Types.............................................................................................45
Fixed Point........................................................................................................46
Floating Point....................................................................................................46
Interpretation Help............................................................................................46
Floating-Point Format.......................................................................................47
Void...................................................................................................................47
typedef...............................................................................................................48
vi
Contents
Declaring Variables............................................................................................. 48
Identifiers..........................................................................................................49
Scope of a Variable...........................................................................................50
Life of a Variable...............................................................................................51
More Qualifiers.................................................................................................51
Design Documentation........................................................................................ 52
RAM................................................................................................................... 53
Summary............................................................................................................. 54
Quiz..................................................................................................................... 56
Chapter 5: Expressions and Operators..................................................................59
Mathematical Operators...................................................................................... 59
Compatibility Notes............................................................................................ 59
Operator Precedence........................................................................................... 60
Expression Type and Type Conversion............................................................... 60
Relational Operators........................................................................................... 62
Binary Bitwise Operators.................................................................................... 63
Compatibility Notes............................................................................................ 64
Assignment Operators......................................................................................... 64
Increment/Decrement Operators......................................................................... 64
Other Operators................................................................................................... 65
Sequence Points.................................................................................................. 67
Expression Examples.......................................................................................... 67
Summary............................................................................................................. 68
Quiz..................................................................................................................... 70
Chapter 6: Statements........................................................................................73
Statement Definitions.......................................................................................... 74
if Statement.......................................................................................................74
while Loops.......................................................................................................77
for Loop............................................................................................................81
Jump Statements...............................................................................................82
switch/case Statement.......................................................................................84
Side Effects......................................................................................................... 85
Nesting, Indentation, and Use of Braces............................................................. 86
Design Documentation........................................................................................ 87
Program Complexity........................................................................................... 88
Summary............................................................................................................. 90
Quiz..................................................................................................................... 91
Chapter 7: Functions...........................................................................................95
main() FUNCTION............................................................................................. 95
Function Definitions............................................................................................ 95
Function Parameters............................................................................................ 98
vii
Contents
Advanced Features.............................................................................................. 99
Compatibility Notes..........................................................................................99
Reference Parameters........................................................................................99
Default Parameters..........................................................................................100
Overloaded Functions.....................................................................................100
Return Values.................................................................................................... 101
Inline Functions................................................................................................ 102
Nested Functions............................................................................................... 102
Recursive Functions.......................................................................................... 102
A Little More on Sequence Points.................................................................... 102
Well-Structured Programs................................................................................. 103
Design Documentation...................................................................................... 104
Implementation Details..................................................................................... 105
Summary........................................................................................................... 106
Quiz................................................................................................................... 107
Chapter 8: Arrays............................................................................................111
Array Initializers............................................................................................... 111
Constant Arrays................................................................................................. 112
String Variables................................................................................................. 112
Dimensionless Arrays....................................................................................... 113
Multidimensional Arrays.................................................................................. 113
Index Range...................................................................................................... 114
Example Array Usage....................................................................................... 114
Lookup Tables................................................................................................... 116
Searching Arrays............................................................................................... 117
Sorting Arrays................................................................................................... 119
Summary........................................................................................................... 120
Quiz................................................................................................................... 121
Chapter 9: Structures.......................................................................................125
Structure Nesting and Arrays............................................................................ 126
Structure Layout in Memory............................................................................. 127
Bit Fields........................................................................................................... 128
Unions............................................................................................................... 129
Example of Structures in a Program................................................................. 131
Summary........................................................................................................... 132
Quiz................................................................................................................... 133
Chapter 10: Memory and Pointers......................................................................137
Memory............................................................................................................. 137
Address-of Operator.......................................................................................... 139
Indirection Operator.......................................................................................... 139
Forcing a Variable Address............................................................................... 139
Pointer Types..................................................................................................... 140
viii
Contents
x
Contents
Summary........................................................................................................... 224
Quiz................................................................................................................... 225
Chapter 16: Discrete Input and Output...............................................................229
Input Voltages.................................................................................................... 229
Drive Current.................................................................................................... 230
Driving More Current....................................................................................... 231
Open Collector Outputs.................................................................................... 232
Direction........................................................................................................... 233
Button Input...................................................................................................... 234
Pull-Ups............................................................................................................ 234
Debounce.......................................................................................................... 235
Filtering............................................................................................................. 236
Memory-Mapping Ports.................................................................................... 237
Summary........................................................................................................... 239
Quiz................................................................................................................... 241
Chapter 17: Interrupts......................................................................................245
Simple Interrupt Example................................................................................. 245
Where Does the Time Go?................................................................................ 246
Debounce Revisited.......................................................................................... 247
It’s Not Always a Good Time to Interrupt......................................................... 248
Why Do We Need Interrupts?........................................................................... 250
What is Really Happening................................................................................ 251
Interrupt Flag (IF)...........................................................................................251
Interrupt Enable Flag (IE)...............................................................................252
Global Interrupt Enable Flag (GIE)................................................................252
Interrupt Handling...........................................................................................252
Handle Your Interrupts Right............................................................................ 252
Multiple Interrupt Considerations..................................................................... 253
12-Bit Opcode Parts........................................................................................253
14-Bit Opcode Parts........................................................................................253
16-Bit Opcode Parts........................................................................................253
24-Bit Opcode Parts........................................................................................254
Latency.............................................................................................................. 255
Reentrancy........................................................................................................ 256
Compatibility Notes.......................................................................................... 257
Summary........................................................................................................... 257
Quiz................................................................................................................... 259
Chapter 18: Timers/Counters............................................................................263
Timer Components............................................................................................ 263
The Counter Core............................................................................................263
The Counter Period.........................................................................................263
The Post-scaler................................................................................................263
xi
Contents
The Pre-scaler.................................................................................................264
The Gate..........................................................................................................264
The Multiplexer...............................................................................................265
PIC Specifics................................................................................................... 265
®
C Code.............................................................................................................. 265
Delay Using Timer............................................................................................ 267
Precision Loop.................................................................................................. 268
Interrupts........................................................................................................... 268
Interrupts at Specific Rates.............................................................................269
Interrupt at a Specific Time.............................................................................270
Virtual Timers................................................................................................... 271
Summary........................................................................................................... 272
Quiz................................................................................................................... 274
Chapter 19: Advanced Timing............................................................................277
PWM................................................................................................................. 277
Using the PWM Library.................................................................................... 281
Capture.............................................................................................................. 281
Compare............................................................................................................ 283
Compatibility Notes.......................................................................................... 284
Summary........................................................................................................... 284
Quiz................................................................................................................... 286
Chapter 20: Analog Techniques..........................................................................289
Digital to Analog Conversion............................................................................ 289
Analog to Digital Conversion........................................................................... 291
More Than 5 V.................................................................................................294
Filtering...........................................................................................................294
Waveform Analysis.........................................................................................298
Aliasing...........................................................................................................298
Working in Your Sleep....................................................................................300
Voltage Reference...........................................................................................300
Comparator....................................................................................................... 301
Voltage Detect................................................................................................... 303
Compatibility Notes.......................................................................................... 304
Summary........................................................................................................... 304
Quiz................................................................................................................... 307
Chapter 21: Internal Serial Busses.....................................................................309
Serial Peripheral Interface................................................................................. 309
SPI Modes.......................................................................................................312
Hardware SPI..................................................................................................312
Multi-drop SPI................................................................................................313
Fewer Wires....................................................................................................314
Noise...............................................................................................................314
xii
Contents
Framing Signal................................................................................................315
Being a Slave..................................................................................................315
I2C..................................................................................................................... 316
Multi-master....................................................................................................320
Special Addresses............................................................................................321
10-Bit Addresses.............................................................................................321
Slave I2C..........................................................................................................322
SMBus............................................................................................................323
Summary........................................................................................................... 323
Quiz................................................................................................................... 325
Chapter 22: External Serial Busses.....................................................................329
RS-232.............................................................................................................. 329
Source Code...................................................................................................... 331
UART................................................................................................................ 333
Incoming Data Interrupts.................................................................................. 334
Outgoing Data Interrupts.................................................................................. 336
Modem Control Signals.................................................................................... 337
Hardware Flow Control.................................................................................... 338
Software Flow Control...................................................................................... 338
Protocol............................................................................................................. 339
RS-232 Future................................................................................................... 340
RS-422.............................................................................................................. 341
RS-485.............................................................................................................. 341
Documentation.................................................................................................. 342
Summary........................................................................................................... 343
Quiz................................................................................................................... 344
Chapter 23: Multitasking..................................................................................347
Preemptive Scheduling..................................................................................... 347
Dispatcher Scheduling...................................................................................... 348
Deterministic Scheduling.................................................................................. 348
Source Code....................................................................................................349
Semaphores....................................................................................................... 351
Message Passing............................................................................................... 353
await()............................................................................................................... 353
Task Management............................................................................................. 354
Summary........................................................................................................... 355
Quiz................................................................................................................... 355
Chapter 24: Inline Assembly..............................................................................359
Assembly Code with C Code............................................................................ 359
Inline Assembly Code....................................................................................... 360
PIC16/PIC18 Simple Move Instructions........................................................... 360
Accessing C Variables from Assembly............................................................. 361
xiii
Contents
xiv
Introduction
Microcontrollers are computers on a chip. When they power up they start running a pro-
gram from internal program memory, also called ROM for read only memory, or Flash.
Microcomputers are found in appliances, toys, automobiles, and computer peripherals, such
as a keyboard or mouse, and are finding their way in as support electronics for almost every-
thing electronic from battery chargers to RADAR systems.
The Microchip PIC® microcontrollers have become the most popular choice for new designs
based on their high speed, of up to 70 million instructions per second as of this writing; low
cost, some under $1; and large number of interfaces like USB, Ethernet, and analog signals.
The C programming language, originally developed by AT&T Labs by authors Brian
Kernighan and Dennis Ritchie, known as K&R C, became an international standard by ANSI
in 1989, known as C89. A new standard derived from C defined the C++ language and was
released in 1998. C++ has some complex language elements that make it impractical for use
on a microcontroller as opposed to a desktop PC. C is the most commonly used language for
programming microcontrollers.
C is in a category of computer languages called high order languages. High order languages
use a tool called a compiler to convert the C text files to a machine readable file.
The first part of this book emphasizes the C language. Previous experience with a program-
ming language will help but is not required. Formal definitions of the language elements are
used and all areas of the language that apply to microcontrollers are covered in detail. Starting
with Chapter 15, this book covers the PIC® microcontroller, its peripherals, and how to use
those peripherals from C in detail. Prior knowledge of basic electronics to interface to hard-
ware devices will help, but is not required to understand this book.
There are variations in the C language extensions between compiler vendors and between
microcontroller families. Throughout the book are indications where there may be compat-
ibility issues between compilers and/or processors. Each chapter will also supply hints for
good programming practices, including documentation. Exercises and quizzes are provided
Introduction
for each chapter to help solidify the concepts learned. This book uses examples ready to
compile using the CCS C compiler. It is the most popular compiler for the Microchip PIC®
processors.
Trademarks:
PIC® MCU, dsPIC® DSC, and MPLAB® are registered trademarks of Microchip Technology,
Inc., in the USA and other countries.
xvi
CHAPTE R 1
C Source Code
This is what C source code looks like:
This program may look very cryptic to you now. When you have finished reading this book
and doing the experiments, this program and much more complex ones will no longer seem
cryptic. As you read the next few chapters, you can refer to this program to see how the topics
relate to this program. For now, let’s make some observations about the overall look of the
program.
Comments
Comments help anyone (including you) who reads your code understand what it does. There
are two styles.
/* */╇ Comments between /* and */ (can span multiple lines, but may not be nested)
// Comments between // and end of line (one line only).
The compiler ignores all comments. Both styles are shown in the sample program.
Program Structure
C programs are made up of compilation units, sometimes called translation units. A compila-
tion unit is a set of files that are compiled together by a compiler. For most examples in this
book we will be using a single compilation unit. A compilation unit is made up of global data
and functions. A function is a callable group of code that in some other languages is referred
to as a procedure or subroutine. Functions are made up of local data accessible only to the
function and of statements within the function.
C Preprocessor Directives
An interesting feature of C is that it has what is referred to as a preprocessor. Think of the pre�
processor as a tool that goes through the code first and makes some modifications to what is
actually compiled. Preprocessor directives start with a # and occupy the entire line. They will
be covered in more detail in Chapter 3. In the above example the #include �directive causes
whatever lines are in the file (e3.h) to appear at this spot in the code for the compilation.
For example, if you created a file named delay.inc and put in the file one line:
delay_ms(500);
then you could replace the two delay lines in the above program with #include <delay.inc>
and the program would compile exactly the same. In the first step of compilation the �compiler
preprocessor would read the delay.inc file when it got to that line and replace the #include
with delay_ms(500); where the #include were.
The preprocessor can be a powerful feature in C that can increase program readability, maxi-
mize code reuse, and significantly help in program maintenance.
As we examine the sample program shown, you see the first line is a preprocessor directive to
include the e3.h file. It is very common for the first non-comment line in a program to include
a file with various project- and/or hardware-specific definitions. The .h extension (for header)
is frequently used for this kind of file. In our case all the declarations needed for the E3 hard-
ware are in this include file.
Functions
Next we find a function definition for “main”. All programs must have exactly one function
named main(). This is where the program begins execution. When referring to a function
www.newnespress.com
C Overview and Program Structureâ•… 3
name in this book we will follow the name with () so it is clear that it is a function name.
The void before the name indicates this function returns nothing and the void inside the ()
indicates this function gets nothing from the caller. The { and } are grouping symbols. All
functions start and end with these symbols.
Functions will be dealt with in detail in Chapter 7; however, to lay a foundation for what they
are, consider some examples of a function being used:
x=sin(y);╇╇╇╇╇╇╇╅╅╅╅ sin is a function with one argument and a return value
x=sin(y*3.1415/180);╇╇╇ the argument may be any expression
x=180*sin(y)/3.1415; ╇╇╛╛the return value may be used in an expression.
Declarations
The “int i” is a data declaration for the variable named with the identifier i. int indicates
the variable is an integer. In this case i may only be used inside the main() function. If this
line was above the start of the function (outside the function) then i could be accessed by
other functions. The range that a variable is accessible from is referred to as the variable
scope. Scope will be covered in more detail in Chapter 4.
In this example the four lines are executed 10 times with the variable i going from 1 to 10
and then, when 11, the loop stops because 11â•›<=â•›10 is false.
Expressions are some combination of constants, variables, operators, and function calls.
Expressions always have a resulting value. Some simple examples of an operator are
+ - * / and the very special =.
In our case since we have four statements to execute in the for we need to group them
together with the { and }. This is called a compound statement. The braces may contain zero
or more statements. Without those, only the output_high() function would be called in the
loop 10 times. Then the other three lines would execute once afterwards.
www.newnespress.com
4 Chapter 1
Each of the four lines in our loop is a function call. These functions are not defined by the
programmer but rather are functions built into the compiler. Function calls are recognized by
the ( following the function name. The expression(s) inside the () of a function call is the data
passed into a function. These are called arguments in the call and parameters in the function.
In C a special case of a valid statement is any expression followed by a ;. Note that just
because it is valid does not mean it makes sense. For example, this is a valid C statement:
1+2;
However, it does not do anything. Some compilers might do the addition and that may take
some time but nothing more is done. A good compiler will throw a warning on this line
because the programmer might have made a typo.
A ; with no expression before it is a special case of a statement called the null statement. It
does nothing.
In C there is not an assignment statement as in some other languages, but rather an assignment
operator, the =. Consider:
x=3;
Time
The ms in delay_ms is milliseconds. Time units frequently used in programs are:
ns nanosecond 0.000,000,001 seconds
us microsecond 0.000,001 seconds
ms millisecond 0.001 seconds
For example, there are 1 million microseconds in 1 second.
Typing Accuracy
Typing accuracy is very important when creating C source code. A punctuation mark, either
typed by mistake or omitted, can cause a lot of head scratching because your program will not
compile. The compiler sees exactly what you type.
For example, if the { was missing on the for line then the compiler would trigger an error
when it got to the } line four lines down from where the actual error was.
The ; that follows many statements and declarations is important to help the compiler to
know when a definition or statement ends. It is never used at the end of a preprocessor
www.newnespress.com
C Overview and Program Structure 5
directive that starts with #. Missing or extra ; or { can create confusing error messages. A
good C editor will highlight matching { } and () and as well as highlight syntactical ele-
ments to prevent errors as you type.
Text Formatting
Formatting white spaces such as spaces, tabs, carriage returns, etc., are ignored by the compiler.
Formatting makes code readable to us. White space, resulting from laying out a program so
it appears better organized, is a good thing. This comes from using spaces, tabs, and blank
lines. Use tabs for indentation instead of several spaces. The number of spaces per tab is
usually adjustable. Three spaces per tab work well. Notice the lines inside the above f unction
are indented and the lines inside the loop are further indented. Indentation and other white
space are optional, but highly recommended. There is no right or wrong as far as the c ompiler
is concerned. Some companies will have companywide coding standards that will specify
indentation, comments, maximum function size, and other readability items.
Compatibility Notes
The // comment is a C++ construct not supported by all C compilers.
Most C Compilers are sensitive to case. For example, Output_High() would not be rec-
ognized but output_high() is. By default, the CCS C compiler is not case sensitive. To
make it case sensitive, you must use a #case preprocessor directive.
Built-in functions like output_high() and delay_ms() are not in the C standard.
These are unique to the CCS C compiler.
Summary
• Programs are made up of one or more compilation (or translation) units.
• Compilation units have preprocessor directives that are resolved before anything else.
• Comments and most white space are ignored.
• A compilation unit is a file with some number functions and global data declarations in
any order.
• Functions have local data declarations and statements all enclosed in { }.
• Functions may return data and the caller may pass data known as arguments to the caller
and parameters to the function.
• Groups of statements may be enclosed in { } to make a compound statement.
• Some statements have expressions within them.
• A statement may be any expression followed by a ;.
• Expressions are made up of constants, variables, operators, and function calls and always
evaluate to some value.
www.newnespress.com
6â•… Chapter 1
Exercise 1-1
Objective: Gain a basic understanding of how to use the compiler and prototyping board.
Requires: E3 module, USB cable, PC.
www.newnespress.com
C Overview and Program Structure 7
Exercise 1-2
Objective: Better understand the use of the tools.
Requires: E3 module, USB cable, PC.
www.newnespress.com
8 Chapter 1
Quiz
(1) As an attempt to reduce white space, which of the following programs is valid?
(a) #include<e3.h> void main(void){inti;for(i=1;i<=10;i=i+1){
output_high(PIN_C6);
delay_ms(500);output_low (PIN_C6);delay_ms(500);}}
(b) #include<e3.h> void main(void){int i;for(i=1;i<=10;i=i+1){
output_high(PIN_C6);
delay_ms(500); output_low(PIN_C6);delay_ms(500);}}
(c) #include<e3.h> void main(void){int i;for(i=1;i<=10;i=i+1){
output_high(PIN_C6);
delay_ms(500);output_low (PIN_C6);delay_ms(500);}}
(d) All are valid
(e) None are valid
(2) Which of the following statements is valid?
(a) 5;
(b) 1 + 2;
(c) {1;2;3;4}
(d) All are valid C
(e) None are valid C
(3) How many times will this statement loop?
for(i=1; i>=10; i=i+1)
(a) 11
(b) 9
(c) 1
(d) 0
(e) Infinite
(4) How many times will this statement loop?
for(i=1; i<=10; i=i+3)
(a) 0
(b) 2
(c) 3
(d) 4
(e) Infinite
www.newnespress.com
C Overview and Program Structure 9
www.newnespress.com
10 Chapter 1
With the following code, how many times will the LED blink?
for(i=1; i<=3; i=i+1)
#include <q1.inc>
(a) 1
(b) 2
(c) 3
(d) 4
(e) None
(10) A file qq1.inc is created with just four characters being void. When an attempt is made
to compile the following, how many errors are generated?
#include <qq1.inc>
main(
#include <qq1.inc>
) { }
(a) None
(b) Three, two void with nothing after and one ( with no )
(c) Two, only the void lines
(d) One, only the main line
(e) Four, the three from b and missing statements between { and }
www.newnespress.com
CHAPTE R 2
Constants
One bit in memory or a register can represent one of two possible states, “0” or “1.”
In the world of digital electronics, it is convenient to build circuit elements that have two
states: off/on, active/inactive, or low/high. These states can be represented by “0” or “1”
(see Figure 2.1).
The exact voltage ranges that represent 0 and 1 vary depending on the logic supply voltage
and the integrated circuit logic chip family used (TTL, CMOS, etc.). The choice of using
binary 0 to represent 0 V is arbitrary. Positive logic is shown above. It can be done the
opposite way, which is called negative logic.
Nibbles
A nibble consists of 4 bits and can represent 16 possible states. A nibble is typically the upper
or lower half of a byte (most significant or least significant nibble).
Bytes
A byte consists of 8 bits and is said to be 8 bits wide. An 8-bit microcontroller moves bytes
around on an 8-bit data bus (8 conductors wide).
Memory Sizes
Memory size is most frequently expressed in terms of the number of bytes. Sometimes it will be
expressed in terms of the number of words, where the word size is specific to the way memory
is organized in the machine. For a PIC® MCU, frequently RAM is expressed in bytes and program
memory as words because the program memory may be 12, 14, 16, or 24 bits wide.
Because addressing is done in binary, large memory sizes are also expressed as a power of 2.
For example, instead of 1000 bytes it will be expressed in terms of 1024 bytes (210). Here are
the common abbreviations that apply ONLY to memory:
1K = 1 kilobyte = 1024 bytes
1M = 1 megabyte = 1024 × 1024 or 1,048,576 bytes
1G = 1 gigabyte = 1024 × 1024 × 1024 or 1,073,741,824 bytes.
Syntax of C Constants
Binary
A binary number with more than one bit can represent numbers larger than 1. How much
larger depends on the number of bits or digits. An 8-bit binary number (byte) can represent
256 possible numbers (0–255).
A 16-bit binary number can represent numbers from 0 to 65,535. If we use a byte to transmit
information, we can transmit 256 possible combinations, enough to represent the 10 decimal
digits, upper- and lowercase letters, and more. A commonly used code used to represent these
characters is called ASCII (American Standard for Information Interchange).
Binary numbers are based on powers of 2. The value of bit 0 is 20 = 1 if it contains a 1, or 0 if
it contains 0. The value of bit 1 is 21 = 2 if it contains a 1, or 0 if it contains 0. The value of bit
3 is 23 = 8 if it contains a 1, or 0 if it contains 0, and so on.
www.newnespress.com
Constants 13
For a 16-bit binary number, bit 0 is the least significant bit, and bit 15 is the most signifi-
cant bit. Figure 2.2 shows the value of each bit position if it contains a “1”: All PIC- related
documentation numbers the least significant bit as bit 0. This is a frequent but not universal
convention for microprocessors.
The value of a binary number contained in a 16-bit variable would be determined by multi-
plying the contents of each bit by the value of each bit (see Figure 2.3).
Counting up in binary goes like this:
0000
0001
0010
0011
0100
0101
etc.
www.newnespress.com
14 Chapter 2
Think of this number system in terms of a car odometer where each digit only has a 0 and 1.
When the 1 flips over to 0 the next digit up flips. The way a number is represented is called
the radix.
In C a binary constant starts with a 0b followed by each binary digit. For example, to assign a
decimal 6, or binary 00000110, to the variable x do this:
x=0b00000110;
Decimal
Decimal numbers are the way most people think of numbers. There are 10 digits in each deci-
mal position 0–9. In C we express decimal simply like this:
x=123;
Types will be dealt with later in this book; however, we will note here that the compiler will treat
the above 123 as a 1-byte constant since 123 fits into a byte. If for some reason the programmer
wants it to be treated as a 2-byte number then an L (for long) is appended to the number, like this:
x=123L;
The L is not required for numbers that are already too large to fit in a byte (like 1000).
A number can also have a U after it to indicate it is unsigned.
Signed Integers
The binary numbers shown above are unsigned numbers. An 8-bit memory cell can have a
number from 0 to 255. It is sometimes helpful to represent negative numbers in C. When
doing so, one binary position is used for the sign. 0 is positive and 1 is negative. The rest
of the binary positions are in what is referred to as a 2’s complement format. The 2’s
www.newnespress.com
Constants 15
complement format has an arithmetic advantage over what might seem to be a simpler
scheme. A −2 in 2’s complement form at looks like this:
11111110
When adding 1 to this, the result is:
11111111
And this is the 2’s complement representation for a −1. That is the preferred way it should
work. Add 1 to −2 and get −1. If adding another 1 (think of the odometer) the result is:
00000000
Just as any mathematician would expect.
Think of the odometer starting out at all 0s. If wanting to represent a −1, then move it back-
wards 1 to result in all 1s.
In C, signed integers are represented like this:
x=−123;
Hexadecimal
The hexadecimal number system (or radix) has 16 digits, 0–9 and then A–F. Again, think of
this in terms of an odometer with 16 digits in each spot. The reason for hexadecimal is that it
is very useful for programmers to understand numbers in terms of their binary representation;
however, long binary strings of digits are hard to remember and communicate. Unlike the
more commonly used (in the real word) decimal radix, hexadecimal has a direct relationship
to binary. Every hexadecimal digit is exactly 4 bits in binary. A four-digit hexadecimal num-
ber represents cleanly 16 values (see Figure 2.4). Many programmers will have memorized
the 16 binary patterns that correspond to the 16 hexadecimal digits. They can therefore visual-
ize the binary pattern in a given hexadecimal number. For example, for someone expecting
data over a communications channel of AA, and they are getting 55, it is immediately clear
one bit was lost and then the data is the same.
Hex is sometimes used in this book to represent addresses in memory and is sometimes used
to represent bytes of data. Using hex is not difficult. All you need is a little practice.
One byte requires two hex digits. Note that the digits representing a byte are sometimes
shown in groups of two or four and that the most significant hex digit is on the left.
Hex numbers are denoted by 0x in this book. Some of the more recent microchip literature
uses “h” to designate a number as hexadecimal (this is not valid in C).
A summary of the relationship between binary, hex, and decimal for some selected numbers
is shown in Figure 2.5.
www.newnespress.com
16 Chapter 2
www.newnespress.com
Constants 17
Hexadecimal 0xFFFF (the very top of the program memory address space in some microcon-
trollers) is much easier to write or remember than either 1111 1111 1111 1111 or 65,535.
In C a hex constant starts with a 0x followed by each hex digit. For example, to assign a
decimal 26, or hex 1A, to the variable x do this:
x=0x1A;
Octal
The octal radix has eight values for each digit (0–7). Like hexadecimal this number system
shares a direct relationship to binary. There are 3 bits in each octal digit. Early computer
systems used octal before hex became more popular because you can get more bang for each
digit (see Figure 2.6). Although the octal radix is hardly ever used anymore, it is mentioned
because C gives it a prominent place in the language syntax.
In C an octal constant starts with a 0 followed by each octal digit. For example, to assign a
decimal 10, or octal 12, to the variable x do this:
x=012;
Note that it is a zero, not O as in orange after the =. Be very careful; even though you do not
intend to use octal, if you put a leading 0 on a number you have just converted your intended
number to octal. In the above line of code, X would represent the number of fingers you have,
not the number of eggs in a carton.
www.newnespress.com
18 Chapter 2
Floating Point
The numbers mentioned above are all whole numbers, no decimal point. A floating-
point number is a number with a decimal point that moves over a great range. A simple
floating-point number is 12.34. Internally the number is saved as 1234 × 10−2. The two parts
are referred to as the mantissa and exponent. A given compiler will have a maximum range
for each. On the smaller PIC® devices, the CCS C compiler has 24 bits for the mantissa and
6 bits for the exponent. With 2 bits for the sign of each, this totals 32 bits. This means the fol-
lowing numbers can be represented well:
1.23 123 × 10−2
0.000000000000123 123 × 10−15
12,300,000,000,000,000 123 × 1014.
But a number like this:
1,200,000,000,000,003 1,200,000,000,000,003 × 100
will turn into:
1,200,000,000,000,000 120 × 1014
because the mantissa is not large enough for that many significant digits.
Because there is not always a clean translation to decimal when comparing floating-point
numbers, use less than and greater than rather than equals and not-equals whenever possible.
In C there are three ways to express a floating-point number, as follows:
x=1.23;
x=1.23E5; // same as 123,000.0
x=5F; // same as 5.0.
Fixed Point
A fixed-point number has a decimal point, but the decimal point is fixed. For example, if deal-
ing with money, there is no need for more than two decimal points. The number can be saved
like an integer and tell the compiler to always remember there is a decimal point before the
last two digits. There is no special designation for constants that are fixed-point, the variable
will have the fixed-point designation. The only form allowed is:
x=1.23;
Characters
Characters include the digits (0–9) and letters (A–Z) as well as punctuation and special sym-
bols that are used in programming. Each character that can be represented in C corresponds to
a number from 0 to 255. ASCII is a standard for characters that may be represented by 8 bits.
www.newnespress.com
Constantsâ•…19
There are 256 ASCII characters. The ASCII chart is given in Appendix A. For example, the
letter A is stored in memory as 65. A character constant is enclosed between single quotes. C
is somewhat loose in typing (translating items of various types, nothing to do with what your
fingers do on the keyboard) so you can always use 65 or ‘A’ interchangeably in your code. An
assignment looks like this:
x=‘A’;
There is a special way to specify characters that may not have a keyboard representation,
called an escape sequence. The \ is used to indicate this special format. If you want a \
character you must use two in a row like this: \\. In order to just specify the hex value for
the character you do this: ‘\x41’ (this is the same as ‘A’). For an octal representation use:
‘\101’. There are a number of additional special characters in Table 2.1.
Note that the backslash notation must be used to get a backslash character itself as well as the
single and double quotes in some cases. For example, the following lines are the same and in
each case a single byte value is written to c:
c=‘\r’;
c=‘\0x0D’;
c=13;
String of Characters
C provides for a string of characters to be represented in memory. In this case there can be
any number of characters and the end is determined by a null character ‘\000’ at the end
of the string. For example:
Using the double quotes, we have specified a string of characters. In this case there are four
characters in the string and five characters in memory (the last one being 0). This string
requires 5â•›bytes of memory.
www.newnespress.com
20 Chapter 2
In this case the string is the same 5 bytes. The B and C were represented by hex and octal. It is
very common to use the \r (return) and \n (line feed) in C strings. The Windows file system
uses these two characters to identify the end of a line in a file. A string that represents a single
line in a file and on the screen of most terminal programs might look like this:
Another interesting C feature is if two strings appear in code next to each other with optional
white space between them, then the two strings are treated as one big string. For example:
Notice in this case the 0 after the D is discarded so for both of the above the size in memory
is 9 bytes.
This feature can be used when dealing with very long strings that you may want to break up
onto multiple lines. It also helps in macros, which we will cover in a later chapter.
if (a<b) //compare a to b
If the expression evaluates as TRUE, the statement(s) following this line of code are executed.
If the expression evaluates as FALSE, the statement(s) following this line of code are not
executed. The relational expression a<b will evaluate to a 0 or 1. The if statement simply
treats any nonzero value as a true and a zero value as false. The CCS C compiler predefines
in the device header file two identifiers TRUE and FALSE that sometimes will be useful when
dealing with relational expressions. The C standard does not define TRUE and FALSE.
www.newnespress.com
Constants 21
Const
A symbolic constant may be defined using the key word const, which is a qualifier that can
be applied to a declaration.
After the symbolic constant is defined, it is referred to by name in the program. In this case,
LEVEL can never be changed in the code, it is always 10. The more common way to define
constants like this is:
#define LEVEL 10
This preprocessor directive will replace all occurrences of LEVEL with 10. This will be cov-
ered in more detail in the next chapter.
One advantage of the const method is the identifier type (in this case int) is positively
associated with the identifier along with the value. Frequently programmers will make const
identifiers all uppercase.
Tri-Graph Sequences
The C language has some dated elements; however, because they are part of the specification we
must work around them (like octal). Not all computer keyboards have all the special characters
used in the C language. For example, if your keyboard looks like the one in Figure 2.7, the tilda ∼
is not on the keyboard. The solution to this is what is called a tri-graph sequence. It is a set of
three characters that are always processed before anything else (like a preprocessor). A full list
of the tri-graph sequences is in Table 2.2. The sequence always starts with two question marks
and herein lies the problem. If you have two question marks in a row in your code (even in a
quoted string) you may need to work around tri-graphs. To get two question marks you need to
put six in the code. The following is an example of two lines of code, one with and one without
tri-graphs.
x = ∼ y;
x = ??−y;
www.newnespress.com
22 Chapter 2
The compiler accepts three-character sequences instead of some special characters not avail-
able on all keyboards, as follows:
Table 2.2
Sequence Same as
??= #
??( [
??\ \
??) ]
??' ^
??< {
??! |
??> }
??- ~
www.newnespress.com
Constants 23
Compatibility Notes
Fixed-point data is not supported in many C compilers. Those that support it will usually have
a very unique way of specifying the data. This will usually be tied to the way it is imple-
mented in hardware. Some DSP processors have built in fixed-point math units.
The const qualifier, according to the C standard, simply makes an object read-only. Differ-
ent compilers will implement this in different ways. In the CCS C compiler, const is used
to force data into the program memory. The method by which the data is saved in memory is
such that it is easiest to access. In cases where the programmer is depending on the data being
in a certain format in memory, the const may not work. Another qualifier, rom, may be used
in the CCS C compiler, that will still use program memory but in a format that can be used
with all the C operators, including pointers.
Design Documentation
When program constants that have identifiers (like MAX_NUMBER_OF_ENTRIES) are used in a
program and formal documentation is required, a document is usually generated that will list
all these constants and describe what they are for. Comments in the code to describe these con-
stants will help to better understand the code and aid in the generation of this documentation.
Tools are available that can extract the comments associated with constants from the code.
Here is an example:
Summary
• Bytes have 8 bits, and nibbles have 4 bits.
• The binary radix (0b prefix) has 2 values for each digit and has 2-digit numbers.
• The octal radix (0 prefix) has 8 values for each digit and has 8-digit numbers.
• The decimal radix (no prefix) has 10 values for each digit and has 10-digit numbers.
• The hexadecimal radix (0x prefix) has 16 values for each digit and has 16-digit numbers.
• Signed numbers are in a 2’s complement format making common math easy.
• Floating-point numbers have a very large range and a limited accuracy.
• Floating-point data has a mantissa and exponent and those sizes determine the number
range and accuracy.
• Fixed-point numbers have a precise accuracy to a specific number of digits and a limited range.
• Characters are specified with single quotes and are encoded to numbers using the ASCII
translation charts.
www.newnespress.com
24 Chapter 2
• Special character sequences may be used to specify a specific encoding or to use common
non-printable characters using the \ lead character.
• Strings of characters are represented in C with double quotes and always have a 0 termi-
nator in memory.
Exercise 2-1
Objective: Gain an understanding of C constants by use of the USB interface on the E3 module
to send data to the PC screen.
Requires: E3 module, USB cable, PC.
www.newnespress.com
Constants 25
Quiz
(1) How many bytes of memory are required to hold the following binary number?
1001011001
(a) 10
(b) 1
(c) 1.2
(d) 2
(e) None, binary numbers cannot be put into bytes
(2) One hex digit can be described in which of the following terms?
(a) Two decimal digits
(b) Byte
(c) Nibble
(d) One octal digit
(e) Three binary digits
(3) The binary value 0011 in hex is 3. What is 00110011 in hex?
(a) 303
(b) 33
(c) 6
(d) 1111
(e) 3F
(4) The hex number 1F plus one is what?
(a) 1G
(b) 1F1
(c) 1E
(d) 21
(e) 20
(5) What does the following line show on the console?
printf(“Value is %u”, 081);
(a) Value is 81
(b) Value is 081
(c) Value is 65
(d) Value is 129
(e) Nothing, the line will not compile
(6) Given the following lines, which line will not print the same as the others?
(a) printf(“Value is %u \r\n”, 10);
(b) printf(“Value is %u \r\n”, 0b1010);
www.newnespress.com
26 Chapter 2
www.newnespress.com
CHAPTE R 3
Preprocessor Directives
C programs are processed by the compiler in two distinct steps. The first pass is a pre-
processor step. The preprocessor directives, which begin with #, may affect compiler
settings or may cause textual replacements. Be aware that the preprocessor variables
(identifiers) are not the same as normal C variables. When the preprocessor is done,
there will be no preprocessor directives or identifiers left for the normal processor.
A summary of the popular preprocessor directives follows:
In this case after the preprocessor you get 100−1*3, and that is not the same as (100−1)*3.
The preprocessor does not know C, it is doing only a text replacement. This can
make analyzing error messages challenging. Consider a typo made in the sixth define
where a ; was typed instead of a *. In this case the error would be flagged on the line:
for( i=1; i<=NUMBER_OF_BLINKS; i=i+1 ) {
That line appears correct. However, this line uses the sixth define where the typo occurred in
the defined text replacement.
Notice we used a lowercase i for the variable and all uppercase for the #defines. This is
sometimes done as a style or coding standard in order to recognize #define symbols.
The preprocessor directive takes up the entire line starting with the #. It is sometimes needed
to use multiple lines for a preprocessor directive. To continue a directive on the next line, the
\ symbol is used. For example:
There is a special form of a #define that makes it look like a function call. These are called
function-like macros or macros with arguments and are discussed in detail in Chapter 13.
www.newnespress.com
Another Random Scribd Document
with Unrelated Content
Voices rise shrill, and jokes fly merrily. Maddalena is not of the
maddest among the guests. She stands now apart, softly conversing
with a young man from Rivarolo, who keeps a baker’s shop, and is in
no way to be despised. The shadow of the scirocco has not passed
from her eyes, and the heavy lids lie but half folded away, with long
lashes sweeping downwards; but the young man from Rivarolo does
not seem to mind that sleepy gaze, and has just made up his mind
that last Sunday shall not be the only time he follows a little maiden
into the church of Saint Ambrogio, when she goes to early mass!
Now the board is spread in this large, scantily furnished hall, where
the floor is of red brick and the walls of yellow cement, and the
curtains of soft and faded calicoes; sixteen people sit down to eat
ravioli and stewed beef and truffles, to drink sour Monferrato wine,
and to break their teeth over hard sugar-plums. They are all very
free and friendly, and talk loudly, all but Maddalena, who prefers to
speak in whispers, but then she is sitting beside the baker. When the
evening is over it is this same baker who walks with her slowly, in
the darkness of eight o’clock, up the steep of Via Luccoli, and along
the broad way of the Carlo Felice, till they reach the point where a
narrow, brick-paved and rapid descent runs down into San Matteo.
‘Brava! thou com’st home to time,’ says the mistress, when she
opens the door to the servant-wench. And then they discuss the
party and the presents, the viands, the dresses, the conversation,
and all the scandal that can possibly be gathered from so humble an
affair. ‘Well, thou hast amused thyself; to-morrow there will be
plenty to do, my child,’ says the padrona, as maid and mistress retire
to sleep.
And there is plenty to do indeed! La signora Marini has an
entertainment in honour of her name-day, and la signora Marini likes
to make a show, while being at the same time economical. Mistress
and maid climb the steep hill betimes in the morning to have the
pick of the market produce in the Piazza San Domenico, and both
are a good hand at a bargain and a better hand still at a little
friendly wrangling to small purpose. Maddalena is all day long
plucking fowls, shredding beans, sorting rice, washing lettuce, rolling
paste, stirring minestra—graver kitchen duties the housewife attends
to herself—and when the dinner is under way the hall must be
swept, and the girl has her mistress’s hair yet to do, and her own
little slip-shod person to make neat! ‘Dio, how the ribs ache!’ says
Maddalena, and while she says it the feeble door-bell tinkles—the
guests are there!
Every man and woman, however, has a word and a jest for the
serving-maid, which words and jests re-assure her a good deal, so
that by the time the padrona is ready seated, among the company,
at the long board with the coarse tablecloth, she is herself again,
and, handing the viands, confidentially informs each guest of its
chief ingredients, recommending her own favourites to favoured
ones in the party. Only, when all are served and comfortably eating,
Maddalena does not blush to sit down on the soiled old chintz settee
with the vegetable dish in her lap. She can keep just as sharp a look-
out over the wants of the table, and feels no way guilty of neglecting
any duty—in fact, if reproved would have known quite well how to
answer that she had been on her feet all day and was tired. But no
one makes any complaint. People, on the contrary, are not afraid to
exchange a friendly word now and then with the winsome waitress;
and even when the guests are gone and the mistress goes into the
kitchen to discuss the party’s success, Maddalena gets no scolding,
either for her freedom of manner in the dining-hall, nor because
‘that young man of Rivarolo’ is there, having been brought by a third
party in the shape of the charwoman. Indeed the lady gives
countenance to this affair by her presence, and when the house is
locked up, and both are alone again for the night, the talk between
them is just as much of ‘him’ and his prospects as of the boiled beef
and roasted capons, and of the success of the tagliarini as second
course.
It is not a one-sided interest either. Maddalena has all her mistress’s
concerns just as much at heart, and the concerns of her mistress’s
aunts and uncles, and nieces and cousins as well. If the tagliarini
had not been a success, or the lady had failed to get her due of
compliment, the girl would have cried as copiously as when her own
new dress was spoilt, the first time of wearing, by the water-squirts
in the Pallavicini Garden at her sister’s wedding! And when la signora
Marini had on that violet silk just new for the Corpus Domini
procession, Maddalena could not refrain from a friendly ejaculation
when she opened the street door to her—even though two strange
gentlemen had accompanied her back from church! It is she who
greases and plaits her lady’s hair on occasions less grand than those
for which la pettinatrice—or female hair-dresser—is summoned.
Maddalena can do a little of everything, and everything quite
passably well, from the mending of a bell-rope with a hairpin to the
crimping and ironing of fine muslins, the coiling of plaits, the stewing
of fowls, the rolling of paste, the sweeping of rooms, and last, but
certainly not least, the nursing of sick folk. When la padrona’s aunt
had the typhus, who so deft, so patient, and so tender as the little
servant wench? And when the child of the first-floor lodger had to
have leeches put on for inflammation, did not the doctor say that he
couldn’t have done it better himself than did Maddalena? To which
she had answered, ‘No—nor half so well, being but a miserable man.’
Of course she must needs have her cryings, and scoldings, and ill-
humours, and many is the time she has vowed to run away from the
home she loves so well; but when all’s said and done there is surely
no happier place than the 4to piano of that house in S. Matteo
where mistress and maid live, and laugh and cry and squabble so
thoroughly.
Il Negoziante.
The Shopman.
Carnival has been and gone, Lent is over and Easter festivals, with
sunny smile, have opened the gate to Spring. Upon the country that
spreads around our goodly Riviera city, the flush of almond blossoms
still lies rosily, to fade soon into the paler tones of pear and apple
and cherry bloom. The trees are budding, to help with their faint
green for contrast, but the green that is fullest at this time lies over
the fresh, brown earth, where spring crops have come to life and are
growing fast in the keen, sunlit air. Nursery gardens spread fair and
far about the town, with little white and trellis-covered cottages in
their midst for the husbandmen—gardens that have neat furrows
intersecting them for water-supply, and that make a rich show in
market produce. This is towards Albaro, on Genoa’s eastern side,
and the low front of Albaro’s hill is adorned with many a white old
palace and the slender columns of marble loggias that are fresco-
painted within. From the town’s ramparts these many marble
buildings have a great effect, that stand amidst green gardens, with
roofs lying upon a bright sky, and—walking along the straight and
dusty road that makes, towards the sunrise, for the sea-shore, and
is flanked on both sides with arbutus trees—the white colonnades of
the Paradiso palace are before you all the time to make you
remember for ever after the look of marble arches on a green
hillside and a strong blue sky.
Among the streets the spring cannot make itself quite so well
remembered, nor can the sun have such an effect, but here, as
elsewhere, April, May, and even March have quite another beauty
from January. The sunlight is dashed even across the dark
narrowness of Via San-Luca, and streams across the Piazza Soziglia
to light upon the very counter of Signor Giordano’s shop. Surely
bargains must be the less sharply driven, and the smiles of fair
purchasers the more persuasive! But then Tuesday is the night of la
marchesa Bice’s ball, and one must make one’s profit when one can,
for in a small town, where the people are proverbially stingy, ’tis not
every day that business is to be done!
Il Signor Giordano is a great man in Genoa. He has the largest shop
for the novelties of fashion, and is moreover almost the only one of
the first negozianti who go to London as well as to Paris for spring
and autumn modes. On the other hand, he is not too expensive! He
has his own interest at heart, of course, but he thinks to further it
better by a judicious lowness of price than by an assumption of
foreign exorbitance, as some others do. Then he is not impervious to
female flattery, and something can be done with him in this wise!
The windows of Signor Giordano’s shop are of plate-glass. Years ago
there were no shops in Genoa that had plate-glass for windows, that
had any windows at all in fact, just as there were no cittadine, or
cabs, in the streets, and private carriages were so few that one
could tell them all apart by their liveries: just as there were no gas
lanterns but only oil lamps in the public thoroughfares. Even now the
shops that have real plate-glass windows are few enough, and those
that have them so broad and so fine as Signor Giordano are fewer
still. His premises are large, large for a provincial town of Italy—and
his young shopmen are civil, his goods deftly displayed in the
window; all these advantages go to make the store in Via Soziglia
one of the town’s favourites. So to-day it is well beset with female
customers—prudent and economical mammas, eager daughters,
placidly lavish young matrons, who are the most acceptable of all to
Signor Giordano—everybody wants some adornment, great or small,
for the coming festivity. A neat brougham stops at the door, whence
there steps a slim-figured and pale-faced little dame, tastefully
dressed in the latest of Paris fashions. ‘It is the Contessa
Capramonte, per Bacco,’ says the foreman in the front shop to the
great Signor Giordano, who is reading his Corriere behind. [The
Corriere is the great mercantile paper.] ‘Excellent! Show her those
new gauzes that we had last night;’ then advancing to meet this
most graceful of customers, ‘Your servant, madam,’ bows the vender
of fashions to their wearer; ‘what might be your ladyship’s pleasure
this afternoon?’
And soon the hopeful comer is on the usual high wooden stool
before the counter, all the new Paris gauzes displayed for her choice,
with a dark and tall and perfumed young man to show them off, and
the proprietor himself close at hand to take advice of, to jest and
chat with besides, as these Italian ladies are never afraid to jest with
their social inferiors. ‘Pretty,’ ejaculates she, admiringly, as the tall
young man crushes and drapes a citron-coloured gauze the better
for the sunlight to catch and beautify it! ‘But with that stuff I shall
need a silk dress of the colour besides; it will cost me too much!’
‘Truly your ladyship has the love of fun,’ laughs fat Signor Giordano
at her elbow; ‘we know pretty well what the Contessa Capramonte
has for money!’ ‘Truly,’ pouts the pretty lady; ‘you are a good
husband one can see. Do you not reflect on the face which that
sour-visaged Count will make when I bring him the bill, and have no
more money, of the poor pittance he gives me, to pay it with? Oh,
but I must reflect upon it, however!’ ‘The bill will not arrive yet
awhile, and then, when the Signor Conte sees your ladyship in that
dress, whose colour fits so perfectly to the complexion, which is the
talk of our town——!’ ‘Come, have a care,’ laughs the lady back
again, but with no foolish blush. Then considering, while the fatal
look of indecision comes slowly to her pretty face, ‘for the rest you
are right, Signor Giordano; no colour suits me so well, and with an
assortment of tea-roses——’ ‘And the diamonds of the Capramonte
family,’ puts in the great man, dexterously. ‘Yes, with the diamonds,
perhaps,’ ruminates she. ‘Holy Madonna! it will be a sight for men to
come from far and wide to see,’ murmurs the gauze vendor,
fervently, and the dark youth ejaculates, ‘I believe it!’ as he is paid to
do.
‘Well, I suppose I must,’ sighs the customer, and then there comes a
question of quantity, and the Signor Giordano’s advice is again
required about the number of metres for skirt, tunic, scarf and
bodice, the which great matter cannot be decided until the manner
of making have also been chosen, for la Contessa says that for
economy she is going to have this dress made at home by her maid!
It is pretty well certain the matter will be settled and unsettled over
again at least twenty times by maid and mistress when the latter
gets home, but meanwhile it pleases her to discuss it with the
shopman, so forty metres are at last pronounced to be the
necessary amount, and the lady can always have more afterwards,
remarks the perfumed shop-youth with appropriate judgment.
‘Two francs a metre, you said, did you not?’ asks the Countess,
innocently, watching the soft silk stuff being measured out. ‘Dear
madam, no; three francs,’ corrects Signor Giordano with all suavity,
and still the pale-coloured folds pass quickly through the hands of
the tall young man. His thumb is on the great scissors, he has
counted the forty metres, but ‘Stop, stop!’ cries the lady’s eager
voice; ‘I must do without the dress, then—for certainly all that
money, 120 francs, Dio, never shall I obtain it from my husband!
Pity,’ adds she, rising gracefully, and replacing the high stool in its
place, ‘for the colour suits me to perfection, and the stuff pleases
me; this satin stripe is new, and looks well—but 120 francs—heaven
forbid!’ ‘Eh, well,’ concedes the shopman, glancing at his humble
satellite over the counter, ‘what do you think? For such a customer it
would be worth while to make a reduction, is it not true? She would
make such a figure, per Bacco! Let us make it two francs and eighty
centimes. For you I will make a sacrifice,’ adds il Signor Giordano,
with an admiring bow, ‘only’—and this in a lower tone—‘her ladyship
will not mention the price.’ The concession is indifferently well
received. Scoffs the customer, with a pretty toss of her small head, ‘I
do not jest! Two francs a metre, or else I buy my dress elsewhere;
and if I cannot find another to my taste, I stay at home to-morrow
night.’ This is said poutingly, and master and man utter at once a
deprecating ejaculation. ‘Two francs!’ pleads the former; ‘sweet lady,
I couldn’t do it! If heaven had but been more generous to me, how
proudly would I have made a gift of the thing which has been
fortunate enough to please you, but——’ ‘Preposterous!’ laughs the
beauty,’what a good thing that I know you! Well—make it two francs
and thirty centesimi! You will not? Oh, well, I find my dress easily
elsewhere. And there are to be many ladies of great beauty at la
marchesa’s on Tuesday night. I should have required silk for the skirt
too!’ These parting shafts are sent home as the lady retreats
gracefully to the door. ‘Addio,’ nods she, and the plate-glass swings
to behind her, the citron-coloured gauze is folded away off the
counter. Yet both vendor and purchaser know well enough it will be
out again in a trice, and addressed, moreover, to the Palazzo
Capramonte.
So sure, in fact, is the shopman of this that when, five minutes later,
another and less constant customer sees, admires, and would
purchase that frail fabric, he is not afraid positively to state that forty
metri of it are sold to the Contessa Capramonte; he is not ashamed
either, when asked the price by this next customer, to give it only as
two francs and fifty centesimi, but then this second lady is a
foreigner, and will not bargain, and the Signor Giordano knows
exactly how much to put on, because he knows how much a
Genoese lady will have off before she buys. Is it waste of time? Not
at all, the shopman will tell you—only part of the day’s work.
The Contessa walks leisurely from Soziglia down the Via de’ Orefici,
and goes into a jeweller’s shop in this jewellers’ street, where, over
lumps of pale pink coral and finely-wrought trinkets of silver and gilt-
silver filigree, she plays her play over again, to come out triumphant
with a necklace, whose dainty lumps and loops and wires are
cunningly fashioned into leaves and roses. The necklace is not for
herself, for a Genoese lady despises the produce of that darkly,
strangely winding street, where the booths stand out freely to view,
and glitter with the light silver wares, or are rich with the red heavy
coral; but bargaining comes to her as second nature, so she has
fought none the less bravely over the trinket because the
commission is for a foreign friend. Thoughts of that dress have not
strayed from her mind all the same, and before the Contessa drives
out of Soziglia the citron gauze has been purchased for two francs
and fifty centesimi the metro, which was the exact sum on which
Signor Giordano meant they should meet from the beginning; and
silk to match, and flowers, and ribbons have been added to the bill,
all for something more than the one, for something less than the
other said at first. So la Contessa goes home to her palace at
Carignano, where banksia roses are blooming against the wall, and
pink and white fruit-blossoms in the villa, while a purple Judas-tree
is a-flower before the house. And the Signor Giordano goes home to
the flat in Castelletto, where, though it is five storeys high, flowers
still bloom upon the terrace and over the pergola, for winter is past,
and we are in spring-time.
La Pettinatrice.
The Hairdresser.
Marrina has her hands full to-day; for though it is quite too hot for
early May—so hot that the first whiteness and crispness of a
pezzotto is gone before the week is out—there is to be a ball to-
night, and a ball in the sad old halls of the deserted Royal Palace;
the king is coming to Genoa—the king and the people’s favourite,
our much-loved Princess Margherita. Even the sparing Genoese do
not grudge a little money to be brightest and happiest on such an
occasion. The people and the shops are gay—the very streets, and
walls, and houses seem to shine with joy of the prospect;
illuminations are preparing in the public ways, the stalls of the fioraje
are well stocked, and on the Acquasola the trees are a-flower, bright
with green and wide spreading, the air is sweet with acacia-scent
and laburnum. Marrina lives without the city’s gates, on the side
towards the great cemetery. Why she lives there, who knows, as she
often says? For, although the way into town is not further than even
a buxom woman, like herself, can comfortably do in half-an-hour, it
is more trouble than it is worth, this being obliged to pick up one’s
petticoats, and turn out along the dusty highway every blessed
morning of one’s life—whether the sun be hot or the Tramontana
bleak—just to coil, and plaster, and construct aloft those heavy black
masses of the Signora De Maroni’s hair! But, then, if one always had
a reason for everything one did, Madonna, life would be a purgatory
indeed! This is Marrina’s philosophy, and, indeed, the rents are not
so high without the walls, and one has a breath for one’s money in
summer time, if a colder blast in winter.
This morning there is little room for complaint of any sort. The
weary-white valley of the Bisagno opens out to the sea, and is,
perhaps, not beautiful in itself, because the shingle of its river’s bed
lies around so wide with so small a thread of water in its midst; but,
on either side of it, and beyond the dusty roads which hem its
margin, green slopes rise gently with palaces on their sides where
they are nearest the town, and with fruit trees in blossom and
chestnut trees in leaf, on the opposite slopes of Albaro, which the
market gardens of manenti make green the sooner. Pinkest peach
bloom is over, but the cherry and the pear, and the tender-toned
apple-blossom have not cast all their flowers yet, while the may and
the blackthorn spread white and pink patches on hedge-rows inland,
and, on the mossy turf of the Quesia Valley some two miles ahead,
violets bloom beneath bright chestnut trees, and primroses on banks
and boulders, faint narcissus breathes a scent where the air plays
freely, and cowslips hang their heads in the sunshine. La Pettinatrice
does not often see these things, it is true, for her own house stands
nearer town upon the high road, where the Bisagno is thick with the
soap-suds of many washerwomen who flog clothes upon hard flint,
as they stand in its stream. But she has an aunt who lives up there
where the water flows clean, and glides off mill-wheels into deep,
green pools, and she has plucked the faintly streaked tulips from out
the new spring wheat, and she knows the bloom of the fruit trees,
though she is a town woman born and bred.
The dust lies thick on the road; although the summer has scarce
begun, the sun shines hotly down, and Marrina is minded to spend
two soldi that she may escape both dust and heat in a very insecure
and closely-packed conveyance that runs to the Virgin’s gate of Porta
Pila. Yet the sun is on Marrina’s broad back worse than ever, the dust
whirls in her face from the open door and the flies are numerous,
but a little altercation with the omnibus inmates makes up for all this
and more. There is a man who carries the most fragrant of truffles
with stale fish in a basket, and another who has just eaten freely of
garlic and onions, but both of them discourse well with the comely
pettinatrice, and she finds no fault in them. Marrina is a well-
preserved woman of some thirty years. She is, perhaps, a little more
showy-looking than some, even of the town-women of her age—that
comes from her life amongst many classes, and a little also because
Marrina has no husband, no home of her own, and no children. She
has a shapely figure, that is a little too short for its size, a full round
throat which the sun has burnt brown, a face that is one shade
whiter than the throat, and a fine head of black crimped hair,
whereon her own craft is amply displayed; her mouth is large, with
full red lips and white teeth, her cheeks are rosy, her eyes twinkle
proudly, and she wears white thread stockings and black shoes; her
petticoats set out richly from her broad hips, her dress is gaily
patterned, her kerchief falls aside a little at the neck, her hands are
plump and smooth.
LA PETTINATRICE IN AN OMNIBUS.
The gate-keeper at Porta Pila, the host of the Osteria degli Amici, at
the corner, the woman who sells fried fish two steps further on, all
greet la pettinatrice as she comes across the drawbridge, with
swinging gait, to turn up the first road on the right. La Signora De
Maroni is the first to have her hair dressed, for she is a constant
customer; but other thoughts and wider plans are rife in Marrina’s
brain to-day, and she bestows but scant attention on this lady’s well-
greased plaits. The morning’s unfailing gossip loses none of its
excellence, however, for the grist is more rather than less plentiful to
the mill. ‘Does vossignoria call to mind the linendraper’s wife who
used to rent the little house with the pergola here above the
convent?’ ‘That little red-haired one? Well, what of her?’ demands
the lady sharply. She is a fine woman for her years, and has a
handsome pile of hair, but hers is black, which is common-place, and
besides the linendraper’s wife is ten years younger! Marrina knows
all this. ‘Giusto,’ she answers glibly, ‘what a wit your worship has, to
be sure! Red it is—red enough to scare the devil! Well, they’ve made
a failure, they don’t live up here; they’ve only got a bit of a place
now—you should see what a misery—down in Via Giulia!’ ‘Truly,’
murmurs La Signora De Maroni, well pleased. ‘I should think she
wouldn’t be on the Acquasola to see the Princess, then?’ ‘I believe
you, she won’t,’ laughs Marrina, crimping a poor handful of front hair
as she speaks! Then, taking a hairpin from between her teeth,
where it has been held for convenience, and placing it firmly through
the towering structure of her victim’s head, ‘She’s too vain to show
herself without a new silk dress! It’s quite ridiculous at her age! If it
were yourself now, one would understand!’ ‘Go away with you,’
laughs the flattered dame, now holding the hot irons ready, to have
the little flat curls of long usage made and plastered upon her
forehead! ‘Yes, yes, it is true,’ continues Marrina, ‘and yet what is
youth good for, I say? Only to play the fool. See there that new bride
of Signor Parini, the goldsmith! People made such a noise of her
youth and her beauty—only fourteen years old, and a wife! Well,
how does she use it? Not been a mother three months, and a mere
chit of sixteen as she is, before they do say’—and la pettinatrice’s
voice sinks to an impressive whisper which la Signora De Maroni
alone is able to hear.
But the daily erection is done, and Marrina has no time for gossip
this morning. ‘Does vossignoria go to the opera to-night to see the
Princess?’ she asks, rolling down her sleeves again. ‘Eh, povera me!
No, indeed I do not,’ answers the lady! ‘Not even for a joke could I
persuade that wretch of a De Maroni to hire me a box! And he that
everyone tells me is so rich. Shame on him!’ Marrina laughs loudly.
‘They are all so, those husbands,’ she says. ‘The Virgin defend me
from one!’ And with a ‘dunque domani,’ she is gone. La Signora De
Maroni has neither so interesting a head nor so interesting a
conversation as many whose hair she will do this day, for Marrina
has twisted and combed and greased those black locks every
morning for the last five years; so, swiftly running down the ninety-
four dark and dirty steps, perhaps not with the lightest of footfalls,
she is glad to greet the cobbler again, who stitches in the portico,
and to be out in the spring air. There are two more subscribing
clients to be finished off, and after that who knows how many
chance heads of ladies who are going to the Princess’s ball?
The next customer lives up one of the fine new streets. She is not so
rich as the De Maroni, but she is noble, and has better hair—hair
that it’s a pleasure to stick the pins into, as la pettinatrice has been
heard to say. Lilacs are blooming, with snowy guelder roses behind
the tall railings of private gardens in Via Serra, and the banksia buds
have grown so wildly that their long and flowering sprays fall back
over the wall into the street. Marrina plucks a blossom with which to
greet her customer. It is not hers to pluck, but why should that
signify, any more than it can signify she should make fun of the
bourgeoise De Maroni with this younger and prettier rival of the
aristocracy, telling of the grey hairs that lie underneath, if only you
lift the well-greased black ones, and of how that old husband of hers
refused to spend his money to take her to the opera. ‘And with
reason,’ says Marrina for comment; ‘if the poor devil must needs
spend money, ’tis natural he should prefer to spend it for a pretty
face.’ Then the lady laughs, and quite agrees, and they fall to the
discussion of this one and that one—for this customer is young, and
has her many gallants, and Marrina is always very useful for gossip
and scandal. La signora is going to the opera, and then to the ball—
not with her husband, of course—and must needs consult Marrina
about her toilet, for a pettinatrice sees the costume of many a fine
lady, and can advise so as to make or to mar many an evening’s
happiness.
On this occasion the pretty countess gets many a hint, and knows
what most of the marchese will wear to-night, so that she is able still
to devise—with la pettinatrice’s help—some extravagance that shall
outvie them all. Fortunately for her, she is a favourite with Marrina,
and may trust just a little more to the discretion of Marrina’s tongue
than all the poor ladies who confided the secret of their toilets to her
yesterday—because, though her hands will work amongst hair till far
into the coming night, Marrina dressed many a head yester eve,
whose owner sat upright in a chair till this morning—nor thought
anything of it—for appearance sake! ‘Amuse yourself, Signora
Contessa, and have a care for that poor little marquis of last week,
now that you have a new gallant,’ says Marrina, deftly placing the
last pile. ‘Dio, what time I waste with you,’ adds she, as the church
clock strikes! And she is down the stair, down the street almost with
the thought, and out into the flower-strewn Acquasola, where the air
is flushed with summer sunshine, and waxen blossoms stand stiffly
amid the broad leaves of horse-chestnuts in the sloping avenue. La
Marchesa Tagliafico lives on the Salita dei Cappucini, where she can
see the flowering creepers against the tall old wall of the Villetta de’
Negri opposite, that is now the new Acquasola, where she can hear
the rush of the cascade, and scent the limes and acacias off the
public-gardens, and watch the nobility driving round of a warm
Sunday evening; where she is close to the ancient Church of the
Cappucini, besides, and can stand beneath its cypresses two minutes
after leaving home, to visit its Presepio at Epiphany or its Santo
Sepolcro in Holy Week, to hear its Frati Predicatori, to attend mass
and buy waxen images on all or any of the festas. La Marchesa is
one of the devout; nevertheless she is to be at the ball to-night, and
Marrina is to do her hair.
Even la pettinatrice’s goodly strength is well-nigh spent and her
fingers greased to the bone, before the last head is finished off, for,
in spite of her only having taken half-an-hour’s rest to see the
Princess drive round the gardens, it is midnight long past when the
final touch is put to the final Marchesa. The day’s work is over, but
Marrina does not go home to the tall house on the dusty road
beyond Porta Pila. She too must have her night’s recreation. Who
would expect the love of folly to be spent in a woman of that figure
and those eyes, even though her calendar count thirty birth-days?
But after the gas-lit night, the summer sunshine still comes back,
bright and pure, and fresh apple-blossoms blow beside la
pettinatrice’s home.
Fisher-Folk.
When the high road of the eastern Riviera has left the town behind a
space, and has even travelled clear of the last palaces without the
walls of the city of marbles—when it has crossed that tongue of
Albaro’s Hill that divides the waves, and, having left sea behind in
Genoa’s Bay, comes back to more sea that laps freely upon a free
and rocky coast—when it has coiled closely round corners and
skirted precipices for many a mile—it comes, on its way, across a
little town where the hills rise abruptly behind, and the orange
groves are thick around, and the villas of nobles lie sumptuously
upon the shore.
There have been many little towns, scarcely larger than villages, all
along the road from Porta Pila, and many a lovely palace standing in
its garden and fruit-groves along the coast—so many, indeed, that
even a quarter of a mile has not been left untenanted by man-kind;
but Nervi is a prettier place than any of the other places since
Albaro’s villas were left behind. The hills that stand for background
to it are straight hills and fairly wooded, yet they are not the best
features in its beauty, for, excepting from the sea, no one has seen
their shapes impressively, so close do they rise, looking down upon
the village. Nervi’s loveliness is in her gardens, with the palms and
pines that grow there, and the stately palaces whose time-tinted
marble walls stand in the midst; it is in her lemon orchards and
orange groves, where the breeze blows laden with scent in the
flowering time, and the pale or golden fruit hangs heavily-gorgeous
through the early spring days; it is in her rocky beach, where the
changing sea laps for ever and is never the same, where fishers
spread their nets, and children wade and play, and the wonderful
water-line is broken and perilous because of the cloven rocks that lie
guarding it.
The little straight street is not beautiful, though its barber and
dressmaker and its Fabbrica di paste be indispensable to the
dwellers round about, and though dirty shops and tall houses,
because strange, have often been called picturesque; the
Mediterranean lies hid from Nervi’s street, and, when one is on the
Riviera the Mediterranean is the thing most powerful to charm. But,
on the sea-shore, street and barber and shops are forgotten. The
sun gleams on white wave-crests that temper the sea’s blue on
some breezy spring day; the sun lies scorching the weed-grown
jagged rocks, the sloping slate rocks that slide far down beneath
water that grows green near shore; the sun sweetens the oranges,
and makes the flowers more luscious of scent, and the fishermen lay
their nets. Though Nervi is a village where rich folk have their
dwellings and marble steps lead down to the water for bathing,
there are hamlets near around, of poorly squalid mien and strangest
name, where fisher-folk live and fisher-children hunt crabs and shell-
fish in the bays.
Walking along the winding way that creeps round the lip of little
gulfs, and dives into dark crevices of crags—or along the way that,
being poised midway aloft upon the cliff some hundred feet above
the water, leads from Nervi to the fishing village of Bogliasco—you
might see Maso, perhaps, out at sea in his broad and tanned old
boat, spreading nets for the night’s fishery, or, further on, from off
the smoother shingle, Paolo pushing out upon the coming wave,
with the children standing by to help with shout and laughter, and
the women with parting joke or reproof.
May is near to her end now, and the long evenings make summer
again. The water is warm, because the sun has lain upon it all day,
and blue with a memory of the clouds overhead, that are paling now
in the waning lights. A golden glamour comes down upon the waves;
the sun is near to setting. Paolo stands in the sea, making ready to
push off; his brown, broad feet upon the yellow shingle are broader,
but not browner, beneath the green water that reaches to his knee
where the striped hose rolls up; the golden light strikes across his
face on its way to the bright group upon shore and to the bright
spring green over the hill beyond. He is a tall man and strongly built,
but his face is battered and seamed; they call him in the fishery ‘the
furrowed one,’ but he is liked well enough notwithstanding, and,
truly, that careworn face has a kindling eye and an honest smile.
Paolo is a married man. That mischievous urchin is his own first-
born, who leans against the boat with his calves in deep water—as
the calves of the rising generation are apt to be; his hard young
hands are eager to help, his keen black eyes look for the signal. And
that is Paolo’s wife—that broad-hipped woman with the full, free
figure, who waits upon the beach with the swaddled infant in one
arm and the year-old boy clinging to her skirt; all the other children
play around, they are waiting to see father away.
Now his ropes are coiled, his nets are in order; Gian-Battista has
arrived leisurely—Paolo’s lazy nephew, who helps in the fishery.
When his lighter skiff has also been made ready, two strong pairs of
hands—that nine-year-old boy helping lustily—start both old crafts
out to sea. Paolo leaps in swiftly, the oars are dipped, and the
golden sun sinks a little lower upon the horizon. ‘Andiamo bambini!’
calls Maddalena shrilly, only she calls it in strangest dialect, to the
loitering children. And by the time she has dragged the younger and
driven the elder up the short, steep slope of beach on to the jagged
rocks beyond, that lie beneath the village, the boats have pulled a
mile out to sea, and Paolo has sunk his nets for the tunny fishery.
PAOLO AT SEA.
Some two hundred yards and more each of them spreads around;
you may see the little brown bobbins, that mark the circumference,
float and jerk up and down on the water as Gian-Battista spreads his
end of net, rowing across the marked space meanwhile; then the
two boats lie sentinels at either end, to guard their sacred surface
from other craft, and to watch for the haul. So when the time has
come, and the watching has been long enough, calling to one
another across the space with deep, loud voices that are tempered
to softness as they travel over the water, Paolo and Battista begin
slowly to row towards the net’s centre with the net’s ends fastened
to their separate boats, and, when they meet in the middle, the net’s
mouth will have closed upon the captured fish.
There are not many this time. When Battista has got into his uncle’s
boat, and when together, with cheery cry and many a passing
ejaculation, they have hauled in the great net, it is but a cattiva
pesca that is the result of their evening’s labour. And the sun has
gone down now behind the purple clouds and beneath the waves;
the sea’s blue is dark, almost to blackness, as the night breeze
creeps up; Sestri’s coast can no longer be seen—scarce even the
great promontory that hides La Spezia from sight in the daytime. Yet
further out to sea they lay down the net again, and little lanterns
have had to be lighted in either boat, other lights and lanterns have
been long put out that glimmered faintly from the village ashore,
before Paolo and Battista row back again towards the rock-bound
bay beneath the cliff. But a dying memory of sunset from the west
can still light the boats homewards though the summer night be far
advanced, and, against the background of this dim and distant
brightness, Paolo’s tall figure stands taller than before as he waits,
with forward foot and well-poised body, upon the boat’s prow, till the
shingle shall grind beneath her keel, and it be time to leap out into
shallow water and pull her high upon the yellow beach. Maddalena’s
shrill voice is hushed, the children are all a-bed and the hearth
swept up; but, if the fire be spent, the fisher’s meal has not been
forgotten by the fisher’s wife; cold polenta, brown bread and
chestnuts stand ready by the settle, though the portly fishwife lies
asleep whose work it will be to bear the haul of tunny-fish to early
market.
The morning dawns, pure and bright. Beneath the pergolas of
Bogliasco cottages the sun is warm already, though night-dews lie
wet still on flowers and herbage. The blue water below laps but
gently against the gnarled rocks where it can dash at will so wildly,
for the sea is calm to-day under a tender sky. ‘It will be hot,’ fisher-
wives say, ‘but what will you have when June days are so near?’
Scarce a ripple stirs the water surface, whose blue is as only the
Mediterranean’s blue can be when the sky is full of colour as now,
and the sun is strong to perfect and enhance. Paolo has been
abroad betimes, and Maddalena is already on her way to the fish-
market with last evening’s produce; but we, who have not cared to
rise so early, will follow Maso this time, who, having neither wife nor
children, begins only to fish when the sun is aloft.
Maso has not so handsome a fame as he who stood last night
against the sunset. In fact, he is an ugly man, for, besides a face
that is brown and weather-beaten, and pitted with the small-pox (as
his nickname in the village dialect would tell you), he has a short,
wiry figure, that for all its ease of movement cannot compare with
the tall, spare grace of his neighbour. Maso had wonderful luck with
the bianchette, that are a kind of whitebait, through the past month
of April, and he had a good net of anchovies some three days ago;
but anchovies are not the surest sport, and this morning he will lay
for the sardines, as Paolo has done. Maso has a little brother—a
brisk, lithe little ragamuffin of ten years, one of those who rarely
have time for aught but mischief, as his keen eyes would tell you;
him he sends up on the hill for watch. And while the two men—for
the fishing is all done in couples, and Maso has a comrade like the
rest—while the men spread their nets just beyond the rocks in the
creek’s clear water below, Giannino’s bare feet have climbed the hill
where the stones were sharpest for his long toes to cling to, and is
squatting on the hot earth amid the thyme and the flowers and
beneath the grey-toned olives, between the frail network of whose
boughs those blue waves shine with fairest glory.
But Giannino notes none of the things of Nature; he is watching the
sardine shoals come on. Maso and the other have parted company in
their separate boats now; each is posted at an opposite side, with a
net’s end fastened to his skiff. And presently Giannino, from behind
the olive trees, sees a goodly company of little slim and silvery fish
making towards that very pool of clearest blue-green water, where
the cruel snare lies spread in the rock’s great shade. A silent signal is
enough to the fishers, who are watching for it, and the boats row
slowly centre-wards, till the net’s mouth has closed upon the dainty
prisoners. Silver and gold gleam in the sun’s own silver light, for the
little fish struggle pitifully amid those horrible meshes. It has been a
buona pesca this time, and the brown and dingy coils are soon in
the boat, the spoil secured safely within the well. It is Nicoletta who
goes to market with the sardines; but not into town, only to
Bogliasco, where men and women buy the fish from the fishers, to
take into Genoa. Nicoletta is a spare and tanned little maiden, with
brown feet and ankles that have never known shoes or stockings;
she is sister to Maso and Giannino, but it is the latter she resembles
in her wild, wiry strength, for she, too, is something of a pickle!
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
ebookultra.com