100% found this document useful (15 votes)
32 views

Immediate download Intermediate C Programming for the PIC Microcontroller: Simplifying Embedded Programming Hubert Henry Ward ebooks 2024

Embedded

Uploaded by

azzanaachi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (15 votes)
32 views

Immediate download Intermediate C Programming for the PIC Microcontroller: Simplifying Embedded Programming Hubert Henry Ward ebooks 2024

Embedded

Uploaded by

azzanaachi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Experience Seamless Full Ebook Downloads for Every Genre at textbookfull.

com

Intermediate C Programming for the PIC


Microcontroller: Simplifying Embedded Programming
Hubert Henry Ward

https://textbookfull.com/product/intermediate-c-programming-
for-the-pic-microcontroller-simplifying-embedded-
programming-hubert-henry-ward/

OR CLICK BUTTON

DOWNLOAD NOW

Explore and download more ebook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Programming PIC Microcontrollers with XC8 1st Edition


Armstrong Subero

https://textbookfull.com/product/programming-pic-microcontrollers-
with-xc8-1st-edition-armstrong-subero/

textboxfull.com

Stm32 Arm Programming for Embedded Systems 1st Edition


Muhammad Ali Mazidi

https://textbookfull.com/product/stm32-arm-programming-for-embedded-
systems-1st-edition-muhammad-ali-mazidi/

textboxfull.com

Programming with MicroPython Embedded Programming with


Microcontrollers and Python 1st Edition Nicholas H.
Tollervey
https://textbookfull.com/product/programming-with-micropython-
embedded-programming-with-microcontrollers-and-python-1st-edition-
nicholas-h-tollervey/
textboxfull.com

Programming with MicroPython embedded programming with


Microcontrollers and Python First Edition Nicholas H.
Tollervey
https://textbookfull.com/product/programming-with-micropython-
embedded-programming-with-microcontrollers-and-python-first-edition-
nicholas-h-tollervey/
textboxfull.com
C# Programming for Absolute Beginners Radek Vystav■l

https://textbookfull.com/product/c-programming-for-absolute-beginners-
radek-vystavel/

textboxfull.com

Learning embedded Android N programming 1st Edition Ivan


Morgillo

https://textbookfull.com/product/learning-embedded-android-n-
programming-1st-edition-ivan-morgillo/

textboxfull.com

C++ Programming D. S

https://textbookfull.com/product/c-programming-d-s/

textboxfull.com

C Programming For Dummies (For Dummies (Computer/Tech))


Gookin

https://textbookfull.com/product/c-programming-for-dummies-for-
dummies-computer-tech-gookin/

textboxfull.com

Swift Programming The Big Nerd Ranch Guide 3rd Edition


Mikey Ward

https://textbookfull.com/product/swift-programming-the-big-nerd-ranch-
guide-3rd-edition-mikey-ward/

textboxfull.com
TECHNOLOGY IN AC TION™

Intermediate
C Programming
for the PIC
Microcontroller
Simplifying Embedded
Programming

Hubert Henry Ward
Intermediate
C Programming
for the PIC
Microcontroller
Simplifying Embedded
Programming

Hubert Henry Ward


Intermediate C Programming for the PIC Microcontroller: Simplifying
Embedded Programming
Hubert Henry Ward
Leigh, UK

ISBN-13 (pbk): 978-1-4842-6067-8 ISBN-13 (electronic): 978-1-4842-6068-5


https://doi.org/10.1007/978-1-4842-6068-5

Copyright © 2020 by Hubert Henry Ward


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Natalie Pao
Development Editor: James Markham
Coordinating Editor: Jessica Vakili
Distributed to the book trade worldwide by Springer Science+Business Media New York,
1 NY Plaza, New York, NY 10004. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail
orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a
California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc
(SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail booktranslations@springernature.com; for
reprint, paperback, or audio rights, please e-mail bookpermissions@springernature.com.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub via the book’s product page, located at www.apress.com/
978-1-4842-6067-8. For more detailed information, please visit www.apress.com/source-code.
Printed on acid-free paper
Table of Contents
About the Author���������������������������������������������������������������������������������ix

About the Technical Reviewer�������������������������������������������������������������xi


Introduction���������������������������������������������������������������������������������������xiii

Chapter 1: Creating a Header File���������������������������������������������������������1


Creating a Header File������������������������������������������������������������������������������������������2
Creating a Project in MPLABX��������������������������������������������������������������������������3
Including the Header File�������������������������������������������������������������������������������18
Creating the Project Source File��������������������������������������������������������������������19
Creating a Global Header File������������������������������������������������������������������������23
The PICSetUp.h Header File���������������������������������������������������������������������������26
Analysis of Listing 1-1�����������������������������������������������������������������������������������28
Synopsis��������������������������������������������������������������������������������������������������������46
Answer to Exercise����������������������������������������������������������������������������������������46

Chapter 2: Controlling a Seven-­Segment Display�������������������������������47


Controlling a Seven-Segment Display�����������������������������������������������������������������47
Common Anode Seven-Segment Display������������������������������������������������������49
Common Cathode Seven-Segment Display���������������������������������������������������50
Controlling the Display with the PIC��������������������������������������������������������������52
The Seven-Segment Display Program�����������������������������������������������������������53
The Listing for the Seven-Segment Display Program������������������������������������57
The Analysis of Listing 2-1����������������������������������������������������������������������������59

iii
Table of Contents

Improving the Seven-Segment Display Program�������������������������������������������71


The Problem with the Program����������������������������������������������������������������������71
Arrays������������������������������������������������������������������������������������������������������������72
Using Pointers�����������������������������������������������������������������������������������������������72
Analysis of The Pointer Example�������������������������������������������������������������������73
The Improved Program����������������������������������������������������������������������������������74
Synopsis��������������������������������������������������������������������������������������������������������79
Answers to the Exercises������������������������������������������������������������������������������79

Chapter 3: The 24-Hour Clock�������������������������������������������������������������81


The Seven-Segment Display�������������������������������������������������������������������������������82
The Algorithm for the 24-Hour Clock Using Seven-Segment Displays���������������82
The Initialization of the PIC���������������������������������������������������������������������������������86
Analysis of Listing 3-1����������������������������������������������������������������������������������������93
A 24-Hour Clock with the LCD Display��������������������������������������������������������������104
Analysis of the Header File for the LCD�������������������������������������������������������121
The Analysis of Listing 3-2��������������������������������������������������������������������������133
Improvements for the 24-Hour Clock LCD Program������������������������������������145
Using Switch and Case Keywords���������������������������������������������������������������������147
Analysis of the New Subroutine������������������������������������������������������������������149
Synopsis������������������������������������������������������������������������������������������������������151

Chapter 4: Creating a Square Wave��������������������������������������������������153


Why Create a Square Wave?�����������������������������������������������������������������������������153
Musical Notes���������������������������������������������������������������������������������������������������154
The Speed of the Simple DC Motor�������������������������������������������������������������������156
Pulse Width Modulation������������������������������������������������������������������������������������156
Creating a Square Wave with the PWM Mode���������������������������������������������������158

iv
Table of Contents

Creating a 500Hz Square Wave�������������������������������������������������������������������������162


The Mark Time or Duty Cycle����������������������������������������������������������������������������164
Analysis of Listing 4-1��������������������������������������������������������������������������������������166
Creating Two Square Wave Outputs������������������������������������������������������������������169
Setting the Speed of a DC Motor�����������������������������������������������������������������������172
Driving the Motor����������������������������������������������������������������������������������������������175
Creating a Three-Speed DC Motor Program������������������������������������������������������176
Using a Variable Input Voltage to Change the Speed of a DC Motor�����������������179
Analysis of Listing 4-5��������������������������������������������������������������������������������������180
Creating a Musical Note������������������������������������������������������������������������������������186
Creating the Middle C Note�������������������������������������������������������������������������������187
Creating a Musical Keyboard����������������������������������������������������������������������������191
The Analysis Of Listing 4-7�������������������������������������������������������������������������������194
Summary����������������������������������������������������������������������������������������������������������196
Answers to the Exercises����������������������������������������������������������������������������������196

Chapter 5: DC Motors������������������������������������������������������������������������199


The Stepper Motor��������������������������������������������������������������������������������������������199
The Servo Motor������������������������������������������������������������������������������������������������209
Using the CCPM to Produce the Pulse Train Signal�������������������������������������210
Controlling the Positions of the Servo Motor with a Variable Resistor��������212
Improving The Servo Motor Program�����������������������������������������������������������215
The Algorithm for the Improved Program����������������������������������������������������216
Summary�����������������������������������������������������������������������������������������������������223
Solution to the Exercise�������������������������������������������������������������������������������224

v
Table of Contents

Chapter 6: Interrupts������������������������������������������������������������������������225
What Are Interrupts?�����������������������������������������������������������������������������������������225
The Fetch and Execute Cycle����������������������������������������������������������������������������226
The Program Counter����������������������������������������������������������������������������������������226
The Sources of Interrupts���������������������������������������������������������������������������������230
The Process for a Simple Interrupt with No Priorities���������������������������������231
Setting Up the PIC to Respond to the Interrupts������������������������������������������232
The PIE1 Register����������������������������������������������������������������������������������������237
The Algorithm for the Interrupt Test Program����������������������������������������������239
Compiler Software Version Issue�����������������������������������������������������������������240
The Analysis of Listing 6-1��������������������������������������������������������������������������243
Using the Compare Function of the CCP Module����������������������������������������������251
The Algorithm for the Compare Function�����������������������������������������������������253
The Analysis Of Listing 6-2��������������������������������������������������������������������������256
Using Priority Enabled Interrupts����������������������������������������������������������������������260
The Algorithm for the High/Low Priority Program����������������������������������������260
Analysis of Listing 6-3���������������������������������������������������������������������������������265
Explanation of How the High/Low Priority Program Works��������������������������270
Summary����������������������������������������������������������������������������������������������������������272

Chapter 7: Frequency Measurement and the EEPROM���������������������273


Using the Capture Function of the CCP�������������������������������������������������������������273
Setting the CCP to the Capture Mode����������������������������������������������������������������274
What the CCP Captures in the Capture Mode����������������������������������������������������274
The Algorithm for the Frequency Measurement Program���������������������������������276
Example Frequency Measurement��������������������������������������������������������������������278
The Program to Measure the 500Hz Square Wave��������������������������������������������280

vi
Table of Contents

Analysis of Listing 7-1��������������������������������������������������������������������������������������283


Using the EEPROM Inside the 18f4525�������������������������������������������������������������296
Analysis of Listing 7-3��������������������������������������������������������������������������������������304
Simulation of the EEPROM Program Using MPLABX�����������������������������������������312
Summary����������������������������������������������������������������������������������������������������������314

Appendix 1: Some Useful Definitions������������������������������������������������317

Appendix 2: Mathematical and Logic Operators�������������������������������319

Appendix 3: Keywords����������������������������������������������������������������������321

Appendix 4: Data Types��������������������������������������������������������������������323

Appendix 5: The ASCII Character Set������������������������������������������������325

 ppendix 6: Numbering Systems Within


A
Microprocessor-Based Systems�������������������������������������������������������327
B
 inary Numbers������������������������������������������������������������������������������������������������328
Converting Decimal to Binary���������������������������������������������������������������������������328
Converting from Binary to Decimal�������������������������������������������������������������������329
Adding and Subtracting Binary Numbers����������������������������������������������������������331
Subtracting Binary Numbers�����������������������������������������������������������������������������332
The Hexadecimal Number System��������������������������������������������������������������������334

Appendix 7:���������������������������������������������������������������������������������������337

 ppendix 8: The Frequency and Wavelength of the


A
Main Musical Notes��������������������������������������������������������������������������339

Index�������������������������������������������������������������������������������������������������345

vii
About the Author
Hubert Henry Ward has nearly 25 years of experience as a college lecturer
delivering the BTEC, and now Pearson's, Higher National Certificate and
Higher Diploma in Electrical and Electronic Engineering. Hubert has a
2.1 Honours Bachelor's Degree in Electrical and Electronic Engineering.
Hubert has also worked as a consultant in embedded programming. His
work has established his expertise in the assembler and C programming
languages, within the MPLABX IDE from Microchip, as well as designing
electronic circuits and PCBs using ECAD software. Hubert was also the UK
technical expert in Mechatronics for three years, training the UK team and
taking them to the Skills Olympics in Seoul 2001, resulting in one of the
best outcomes to date for the UK in Mechatronics.

ix
About the Technical Reviewer
Sai Yamanoor is an embedded systems engineer working for an industrial
gases company in Buffalo, NY. His interests, deeply rooted in DIY and
open source hardware, include developing gadgets that aid behavior
modification. He has published two books with his brother, and in his
spare time, he likes to build things that improve quality of life. You can find
his project portfolio at http://saiyamanoor.com.

xi
Introduction
This book looks at some useful aspects of the PIC microcontroller. It
explains how to write programs in C so that you can use the PIC micro to
control a variety of electronics and DC motors. After reading this book, you
will be well on your way to becoming an embedded programmer using the
C programming language.

The Aims and Objectives of This Book


The main aim of this book is to introduce you to some useful applications
of programming PIC micros such as

• Creating header files

• Controlling seven-segment displays

• Using an LCD display with two lines of 16 characters

• Pulse width modulation

• Using driver ICs such as the ULN2004A

• Controlling DC motors, including stepper motors and


servo motors

• Using every aspect of the Capture, Compare and PWM,


CCP module in the PIC

• Using interrupts

• Writing to the EEPROM

xiii
Introduction

The Objectives of This Book


After reading through this book, you should be able to program the PIC
to use all of the above. You should have a good understanding of some of
the advance programming techniques for PIC micros. You should be able
to download your programs to your PIC in a practical situation where you
have the ability to design and build some useful projects.

The Prerequisites
There are none really, but understanding the C programming language
will be useful. However, I will explain how each program works as we go
through them.
Also, if you understand the binary and hexadecimal number systems,
it will be an advantage but there is a section in the Appendix that will help
you with that.
However, to get the full use out of this book, you will need to install the
following software:

• MPLABX, which is the IDE from Microchip. The version


in the book is MPLABX Version 5.25. However, any
version later than 2.20 is OK.

• A C compiler for the 8-bit micro. I use XC8 (V2.10)


but with some programs I use XC8 (V1.35) compiler
software. However, you should be aware that some of
the later compilers are missing some useful libraries.
This is why I sometimes use version 1.35.

All of these programs are freely available from the Microchip web site.

xiv
Introduction

Another useful piece of software is a suitable ECAD (electronic


computer-aided design) software program that supports 8-bit micros.
The ECAD software I use is PROTEUS. However, it is not free, so as well as
showing you how to simulate the programs in PROTEUS, I will show you
how to use a suitable prototype board to run the programs in a practical
situation.
If you want to go down the practical route, you will need to purchase a
programming tool and a prototype board.
The tools I use are either the ICD3 can (Microchip has now moved
onto the ICD4 can) or the PICkit3 programmer to download the programs
from MPLABX to the PIC.
The prototype board I use is the picdem2 plus DEMO BOARD and
a prototype board from Matrix Multimedia (although Matrix no longer
produces the more versatile board that I use).
This book was written based around using MPLABX V5.25.
However, the principles of how to create projects and write programs
are transferable to earlier and later versions of MPLABX. There may be
some slight differences in the details, but they shouldn't cause too many
problems.
The PIC that this book is based around is the PIC18F4525. This is a
very versatile 8-bit micro that comes in a 40-pin dual-inline package. As
long as the PIC you want to use has the same firmware modules, then the
programs in the book can easily be used on other PIC micros with some
minor modifications. However, you should always refer to the data sheet
for the particular PIC you use because some of the SFRs (special function
registers) may differ. For example, the PIC18F4525 uses the ADCON0,
ADCON1, and ADCON2 SRFs to control the ADC module but the 16F88
uses the ANSEL, ADCON0, and ADCON1 registers.
Throughout the book, I include program listings and I go through an
analysis of any new instructions that the listings introduce. With respect to
the first listing, I will assume that all of the instructions are new to you, the
reader.

xv
Introduction

Before we move into the book for real, I think it will be useful to you if
I explained a bit about what MPLABX is. It is an industrial IDE created by
Microchip. The term IDE stands for integrated development environment.
It is actually a lot of programs collected together to create a programming
environment:

• There is an editor, which is slightly more than a simple


text editor. However, in my early days, I used to write
my programs in Notepad.

• There is also a compiler program that converts your


program instructions from C to the machine code that
all microprocessor-based systems use. In the very early
days of programming, the programmers used to write
in this machine code. This was a bit before my time,
although in my early days, I wrote all my programs
in assembler. Assembler is the closet language to the
actual machine code that all micros use.

• There is also a linker program that will bring together


any include files that we wish to use in our projects.

• As well as these programs, there are a range of


programs that we can use to help debug our programs
or simply simulate them.

So this IDE is a very large collection of programs that make our job of
writing code much more efficient. Yet it’s free; well, I use the free version,
which is not as efficient as the paid version but it is more than good
enough for us.
I therefore hope that you not only learn how to program the PIC micro
but you also enjoy going through my book and that you produce some
useful projects along the way.

xvi
CHAPTER 1

Creating a Header File


In an effort to reduce the amount of text in the program listings and reduce
the amount whereby I simply repeat myself, let’s create and use a series of
header files. Header files are used when your programs use the same series
of instructions in exactly the same way in all your projects and programs.
In this book, you will create three header files. The first will be
concerned with the configuration words you write for your projects.
The configuration words are used to configure how the PIC applies the
essential parameters of the PIC. They have to be written for every project
and program you create. Therefore, if you are going to write the same
configuration words for all of your projects, you should use a header file.
The second header file will be associated with setting up the PIC to
use the ports, the oscillator, the timers, etc. You will set them in exactly the
same way in all of your projects, so it’s useful to create a header file for this.
However, in some projects you may need to modify some of the settings, so
be careful when using this header file.
The third header file you will create will be used if your programs use
the LCD (liquid crystal display) in exactly the same way such that

• The LCD is always connected to PORTB.

• The LCD uses just four data lines instead of eight to


save I/O.

• The RS pin is always on Bit4 of PORTB and the E pin on


Bit5 of PORTB.

© Hubert Henry Ward 2020 1


H. H. Ward, Intermediate C Programming for the PIC Microcontroller,
https://doi.org/10.1007/978-1-4842-6068-5_1
Chapter 1 Creating a Header File

• The LCD always increments the cursor position after


each character has been displayed.

• The LCD always uses 2 lines of 16 characters.

• The actual characters are always on a 5 by 8 grid.

If this is all true, you should create a header file for the LCD.
These are the three header files you will create in this book. There are
many more examples of when you should create a header file. The process
of creating and using header files makes your program writing more
efficient.
Header files can be made available for all of your projects, like global
header files as opposed to local header files. Local header files are
available only to the project they were created in.
Also, you can split projects up so that different programmers can write
different sections of the programs and save them as header files to be used
in all projects by all of the company’s programmers.

Creating a Header File


Now that I have explained what header files are and why you would use
them, let’s create one. The first header file you will create will be for the
configuration words that you will use for most of the projects in this
book. It will also give me the chance to go through creating a project in
MPLABX for those readers who have never used MPLABX before. The
version I am using is MPLABX V5.25. It is one of the latest versions of the
IDE from Microchip. Microchip is always updating the software, but the
main concepts of creating a project and writing programs do not change.
You will be able to follow the process even if you have an earlier version of
MPLABX or a later version.

2
Chapter 1 Creating a Header File

Creating a Project in MPLABX


Assuming you have downloaded both the MPLABX software and the XC8
(V2.10) compiler software or XC8 (V1.35), when you open the software, the
opening screen will look like Figure 1-1.

Figure 1-1. The opening screen in MPLABX

The project window on the left-hand side may not be shown. If you
want it shown, you should select the word Window from the top menu
bar. Click the word Projects, with the orange boxes in front of it, and the
window should appear. You may have to move the window about to get it
in the position shown.
Now, assuming you are ready to create a project, you should either
click the word File, in the main menu bar, and select New project, or click
the orange box with the small green cross on the second menu bar. This is
the second symbol from the left-hand side of the second menu bar.
When you have selected the Create project option, you should see the
window shown in Figure 1-2.

3
Chapter 1 Creating a Header File

Figure 1-2. The New Project window

Most of the projects you will create are Microchip Embedded and
Standalone. Therefore, make sure these two options are highlighted and
then click the Next button. The Select Device window should now be
visible, as shown in Figure 1-3.

4
Chapter 1 Creating a Header File

Figure 1-3. The Select Device window

In this window, you can choose which PIC you want to use. Select the
Advanced 8-bit MCUs (PIC18) in the small box alongside Family, as shown
in Figure 1-3. Then, in the Device window, select the PIC18F4525. The result
is shown in Figure 1-3. To make these options visible, you need to click the
small downward pointing arrow in the respective box. The different options
should then become visible. If the device window is highlighted in blue, you
could simply type in the PIC number you want, such as PIC18F4525. Your
selected device should appear in the window below.
If you are using a different PIC, select it here.
Once you are happy with your selection, click the Next button.
The next window to appear is the Select Tool window. This is shown
in Figure 1-4. With this window you can select the programming tool you
want to use to download the program to your prototype board. There are a
range of tools you can use. I mainly use the ICD3 CAN or the PICkit3 tool.

5
Chapter 1 Creating a Header File

However, if I am only simulating the program, I use the simulator option.


Note that the MPLABX IDE comes with its own simulations for the PICs
you may use. It also has a wide range of tools that allow us to simulate
and test programs within MPLABX all without having a real PIC. You will
use the simulator in this project, so select the simulator option shown in
Figure 1-4.

Figure 1-4. The Select Tool window

Having selected the tool you want, click Next to move on to the next
window where you can select the compiler software you want to use,
assuming you have downloaded the appropriate compiler software (see
Figure 1-5).

6
Chapter 1 Creating a Header File

Figure 1-5. The Select Compiler window

You should select the XC8(V2.10) compiler software, although with


some later projects you will use V1.35, as shown in Figure 1-5. Then click
Next to move to the Select Project Name and Folder window shown in
Figure 1-6.

7
Chapter 1 Creating a Header File

Figure 1-6. The Select Project Name and Folder window

In this window, you will specify the name of the project and where you
want to save it. The software will create a new directory on your computer
with the project name you create here. It is recommended that you don’t
use long-winded, complicated path names for the new folder so I normally
save all my projects on the root directory of my laptop.
I have suggested a project name for this new project as
advanceProject1. Note that I am using camelcase, where two words,
or more, are combined together. The first letter of the first word is in
lowercase and the first letters of any subsequent words are in uppercase. In
this way multiple words can be combined together to make one long word.
As you type the name for your project, you should see that the folder is
created on the root drive, or wherever you have specified it should be. The
folder name will have a .X added to it.
It will be in this new folder that all the files associated with the project
will be saved as well as some important subdirectories that are created.

8
Chapter 1 Creating a Header File

Once you are happy with the naming of the project, simply click the
Finish button and the project will be created. The window will now go back
to the main window, as shown in Figure 1-7.

Figure 1-7. The main window with the project created

You should see the project window at the left-hand side of your screen,
as shown in Figure 1-7. Note that you may need to move the window about
to get it the same as that shown in Figure 1-7.
Now that you have the new project created, you need to create a
header file that you will use in all of your projects in this book.
To create the header file, right-click the subdirectory in the project tree
named Header Files. When you do this, the flyout menu will appear, as
shown in Figure 1-8.

9
Chapter 1 Creating a Header File

Figure 1-8. The flyout menu for the new header file

From that flyout menu, select New. From the second flyout menu,
select xc8_header.h, as shown in Figure 1-8.
The window shown in Figure 1-9 will appear.

10
Chapter 1 Creating a Header File

Figure 1-9. The name and location for the new header file

All you need to do here is give the file a name. I have chosen the name
conFigInternalOscNoWDTNoLVP as it gives a good description of what I
want to do in this header file, which is set these three main parameters of
the configuration words. Note the configuration words specify how you
want to configure and so use the PIC.
The main concern is that PICs have a wide variety of primary oscillator
sources and you need to tell the PIC which one you will be using. The
oscillator is the device or circuit that provides a signal from which the
clock signal, the signal that synchronizes the operations of the PIC,
is derived. I prefer to use the internal oscillator block as the primary
oscillator source. This saves buying an oscillator crystal. It also saves two
inputs that would be used if I used an external oscillator. This is because I
would connect the external oscillator to the PIC via those two input pins,
normally RA6 and RA7.

11
Chapter 1 Creating a Header File

The second major item I change is to turn off the WDT, which is the
watch dog timer. This is a timer that will stop the micro if nothing has
happened for a set period of time. This is a facility that you don’t want in
these programs, so you must turn it off. Note that the WDT is mainly used
in continuous production lines. In that situation, the fact that nothing has
happened for a set time usually means something has gone wrong so it’s
best to turn everything off.
The third item to turn off is the low voltage programming (LVP)
function. The low voltage programming affects some of the bits on
PORTB. Therefore, to keep the bits on PORTB available for general I/O, I
normally turn off the LVP.
So this explains the header file’s cryptic name. You should always give
your header files a name that relates to how you want to use the file.
Once you have named the header file, click Finish and the newly
created header file will be inserted into the main editing window in
the software. However, Microchip automatically inserts an awful lot of
comments and instructions that, at your level of programming, you don’t
really need. Therefore, simply select all that stuff and delete it so that you
have an empty file ready for you to insert the code that you really want.
Now that you have a clean file, you can control what goes into it. The
first thing you should do is put some comments in along the following
lines:

• You should tell everyone that you wrote this code.

• You should say what PIC you wrote it for and when you
wrote it.

• You should explain what you are trying to do with it.

12
Chapter 1 Creating a Header File

There are two types of comments in C programs, which are

• Single-line comments: They start with two forward


slashes (//). Anything on the same line after the two
forward slashes is ignored by the compiler as they are
simply comments. For example,

//these words are just comments

• Multiple lines of comments or a paragraph of


comments: This is text inserted between the following
symbols: /* */. For example,

/* Your comments are written in here */

So insert a paragraph of comments as shown in Figure 1-10.

Figure 1-10. The comments for the header file

You should insert your own comments into the editor similar to those
shown in Figure 1-10.
You will notice that I changed the colour of my comments to black and
bold size 14. This is to try and make them more visible than the default
grey.
If you want to change the colour, you can do so by selecting the word
Options from the drop-down menu that appears when you select the
Tools choice on the main menu bar. You will get the window shown in
Figure 1-­11.

13
Chapter 1 Creating a Header File

Figure 1-11. Changing the font and colours

Click the tag for Fonts and Colours and then select what you want to
change. Once you are happy with your choice, click OK. I changed the
colour of the comments to black, as shown in Figure 1-11.
Now you need to create the configuration words for your header file.
As this is something you must do for all your projects, Microchip has
developed a simple process for writing to the configuration words. This
can be achieved using a special window in the MPLABX IDE. To open this
window, click the word Window on the main menu bar and then select
Target Memory Views from the drop-down menu that appears. Then select
Configuration Bits from the slide-out menu that appears. This process is
shown in Figure 1-12.

14
Chapter 1 Creating a Header File

Figure 1-12. Selecting the configuration bits

Once you have selected the configuration bits, your main window will
change to that shown in Figure 1-13.

Figure 1-13. The configuration bits

15
Another Random Scribd Document
with Unrelated Content
sous les étoiles. Quand ainsi la Voix la faisait veuve, elle restait
fidèle cependant et, sans répondre aux cris d’appel de ses frères
sauvages, attendait le retour de Kazan. Parfois, lorsque Kazan
prêtait l’oreille à la Voix, elle le mordillait légèrement, pour lui
témoigner son déplaisir, et grognait vers la Voix.
Or, ce jour-là, comme la Voix retentissait pour la troisième fois,
Louve Grise, au lieu de s’attacher à Kazan et de tenter de le retenir,
lui tourna soudain le dos et se tapit au fond de sa tanière.
Elle s’y coucha, et Kazan ne vit plus, dans l’obscurité, que ses
deux yeux qui flamboyaient, farouches.
Il grimpa vers la pointe extrême du Sun Rock, par la piste étroite,
usée sous ses griffes, et demeura indécis. Depuis la veille, un
certain trouble, qu’il ne pouvait s’expliquer, était en lui. Il y avait du
nouveau qui rôdait sur le Sun Rock. Il ne le voyait point, mais le
sentait.
Il redescendit vers Louve Grise et passa sa tête à l’entrée de la
tanière. Il fut accueilli, non par la plainte caressante coutumière,
mais par un grondement menaçant, qui fit retrousser sur ses crocs
les lèvres de la louve.
Pour la quatrième fois, la Voix se fit entendre et Louve Grise
claqua farouchement des mâchoires. Kazan, après avoir encore
hésité, se décida à descendre du Sun Rock et fila dans la direction
de la cabane.
Par l’instinct de défiance du Wild, qui était en lui, il ne prévenait
jamais de son arrivée, par aucun aboi. Il apparut si soudainement, et
sans crier gare, que Jeanne, qui tenait son bébé dans ses bras,
sursauta, en apercevant dans la porte la tête broussailleuse et les
larges épaules de Kazan. Mais, nullement effrayé, l’enfant s’agita et
se contorsionna de plaisir, et tendit vers le chien-loup ses deux
menottes, en émettant à son adresse un gentil baragouin.
— Kazan ! s’écria Jeanne doucement, avec un geste de
bienvenue. Viens ici, Kazan !
La lueur sauvage, ardente comme du feu, qui luisait dans les
prunelles de Kazan, tomba. Il s’était arrêté, une patte sur le seuil de
la cabane, et semblait répugner à avancer. Puis, tout à coup,
abaissant le panache de sa queue, il s’écrasa sur le sol et entra, en
rampant sur son ventre, comme un chien pris en faute.
Il affectionnait les créatures qui vivaient dans la cabane. Mais la
cabane elle-même, il la haïssait. Car toute cabane sentait le gourdin,
le fouet et la servitude. Pour lui-même, et comme tous les chiens de
traîneau, il préférait, pour dormir, aux parois d’une niche bien close,
le sol couvert de neige et le toit du ciel ou des sapins.
Sous la caresse de la main de Jeanne, Kazan éprouva ce
délicieux petit frisson coutumier, qui était sa récompense, lorsqu’il
quittait pour la cabane Louve Grise et le Wild. Lentement il leva la
tête, jusqu’à ce que son museau noir vînt se poser sur les genoux de
la jeune femme. Puis il ferma béatement les yeux, tandis que la
mystérieuse petite créature qu’était bébé Jeanne l’asticotait, à coups
de pieds mignons, et, de ses mains menues, lui tirait ses poils rudes.
Plus encore que la caresse de la jeune femme, ces jeux enfantins
dont il était l’objet faisaient son bonheur.
Immobile et concentré sur lui-même, comme un sphinx, et
comme pétrifié, Kazan demeurait là sans bouger, respirant à peine.
Le mari de Jeanne n’aimait point à le voir ainsi et s’inquiétait
toujours, en ce cas, de ce que pouvait ruminer le cerveau mystérieux
du chien-loup. Mais la jeune femme était plus confiante en Kazan et
le savait incapable d’une trahison.
— Bon vieux Kazan, disait-elle, je te remercie d’être venu à mon
appel. Bébé et moi nous serons seuls cette nuit. Le papa du petit est
parti au Poste le plus proche et nous comptons sur toi pour nous
garder.
Elle lui chatouillait le museau, du bout de la longue tresse
soyeuse de ses cheveux. Ce qui, quel que fût son désir de n’en point
broncher, faisait souffler et éternuer Kazan, à la grande joie du
marmot.
Puis Jeanne, s’étant levée, s’occupa, durant le reste de la
journée, à empaqueter toutes sortes d’objets qui se trouvaient dans
la cabane, Kazan, qui l’observait, fut fort étonné de ce manège
énigmatique. Quelque chose qu’il pressentait, mais ne pouvait
comprendre, se préparait sans nul doute.
Le soir venu, après l’avoir beaucoup caressé, Jeanne lui dit :
— N’est-ce pas, Kazan, que tu nous défendrais cette nuit, si un
danger nous menaçait ? Maintenant je vais verrouiller la porte, car tu
dois demeurer avec nous jusqu’à demain matin.
Elle se remit à caresser le chien-loup, avec émotion. Sa main
tremblait nerveusement.
— Bientôt, sais-tu, reprit-elle, nous allons partir, nous en
retourner chez nous. Notre récolte de fourrures est terminée. Oui,
nous repartons tout là-bas, là où vivent les parents de mon mari, là
où il y a des villes, avec de grandes églises, des théâtres et des
concerts de musique, et un tas d’autres des plus belles choses qui
sont en ce monde. Et nous t’emmènerons avec nous, Kazan !
Kazan ne comprenait pas ce que lui disait Jeanne, mais il agitait
sa queue, tout heureux de voir que la jeune femme lui parlait. Il en
oubliait Louve Grise et sa rancune contre la cabane, et il alla se
coucher tranquillement dans un coin.
Mais, lorsque Jeanne et l’enfant se furent endormis, quand le
silence fut retombé dans la nuit, son malaise le reprit. Il se mit sur
ses pattes et tourna furtivement tout autour de la chambre, reniflant
les murs, la porte, et tous les objets empaquetés par Jeanne.
Il gémit. La jeune femme, à demi réveillée, l’entendit et murmura :
— Tiens-toi tranquille, Kazan ! Va dormir… Va dormir…
Alors il ne bougea plus et demeura immobile au milieu de la
chambre, inquiet et écoutant.
Et, à travers les murs de bûches de la cabane, il entendit une
plainte lointaine qui venait faiblement jusqu’à lui. C’était le cri de
Louve Grise. Ce cri différait toutefois de celui qu’il avait coutume
d’ouïr. Ce n’était pas un appel de solitude. C’était tout autre chose.
Il courut vivement vers la porte close et se reprit à gémir. Mais
Jeanne et l’enfant dormaient profondément et ne l’entendirent point.
Une fois encore le cri retentit et tout se tut à nouveau. Kazan
s’étala devant la porte et y passa le reste de la nuit.
C’est là que Jeanne le trouva, tout alerté, lorsque le lendemain
matin, de bonne heure, elle s’éveilla. Elle entr’ouvrit la porte et, en
une seconde, il fut dehors. A toute volée, il s’élança vers le Sun
Rock, dont le soleil levant teintait le faîte d’une lueur d’or.
Il y grimpa rapidement, par la piste étroite et raboteuse, et ne
trouva point que Louve Grise fût venue au-devant de lui.
Il atteignit la tanière et huma l’air, le dos hérissé et les pattes
raides. Quelque chose de nouveau flottait dans l’air et ce quelque
chose était de la vie. Il se glissa dans la fente pratiquée entre deux
rochers et, avançant la tête, se trouva nez à nez avec Louve Grise,
qui n’était pas seule.
Louve Grise poussa un gémissement plaintif. Les poils
s’aplatirent sur le dos de Kazan et il répondit par un grognement
attendri. Puis lentement il recula et, dans la lumière de l’aurore, il se
coucha devant l’entrée de la tanière, faisant à la louve, de son corps,
comme un bouclier.
Louve Grise était mère.
XI
LA TRAGÉDIE SUR LE SUN ROCK

Toute cette journée, Kazan demeura sur le Sun Rock. Le


sentiment de sa paternité nouvelle était plus fort que l’appel de la
cabane.
Au crépuscule, Louve Grise se releva de sa couche et tous deux
allèrent faire ensemble un tour sous les sapins. La louve, avec de
petits grognements, mordillait gentiment le cou hirsute de Kazan. Et
Kazan, selon le vieil instinct de ses pères, répondait en caressant de
sa langue la gueule de Louve Grise. Celle-ci témoigna de sa
satisfaction par une série de halètements saccadés, qui étaient sa
manière de rire.
Puis, soudain, elle perçut un cri menu et plaintif qui venait jusqu’à
elle. Elle se hâta de quitter Kazan et de regrimper vers la tanière, où
l’un de ses trois petits l’appelait.
Kazan comprit que Louve Grise ne devait plus quitter, à cette
heure, le sommet du Sun Rock et qu’il devait, seul, se livrer à la
chasse, afin de pourvoir à la nourriture de sa compagne et à celle de
sa couvée. Dès que la lune fut levée, il se mit donc en quête d’un
gibier et, vers l’aube, il revint au gîte, en apportant dans sa mâchoire
un gros lapin blanc. Louve Grise s’en reput gloutonnement. Et Kazan
sut, dès lors, que chaque nuit il devait désormais agir de même.
Le jour suivant, ni celui d’après, il n’alla point vers la cabane, quoi
qu’il entendît la voix de Jeanne et celle de son mari, qui l’appelaient.
Le quatrième jour seulement, il reparut et Jeanne lui fit grande fête,
ainsi que le poupon qui, en babillant, lui envoya force coups de
pieds, qu’il sentait à peine au travers de son épaisse fourrure.
— J’espère, dit le mari de Jeanne, que nous ne nous repentirons
pas un jour de l’avoir emmené avec nous et que son instinct
sauvage ne reprendra jamais le dessus. Mais je me demande
comment tu t’habitueras, vieux diable à notre existence de là-bas.
Cela va te changer fort des forêts où tu as toujours vécu.
— Je ne les regretterai pas moins, mes forêts, répondit Jeanne.
Avec mon pauvre papa, j’y ai, moi aussi, si longtemps vécu ! C’est
pour cela, sans doute, que j’aime tant mon bon vieux Kazan. Après
toi et le bébé, c’est lui, je crois, que j’affectionne le plus sur la terre.
Quant à Kazan, plus encore qu’il ne l’avait déjà éprouvé, il sentit
qu’un événement inconnu se préparait dans la cabane. Ce n’était,
sur le sol, que paquets et ballots.
Toute la semaine, il en fut de même. Kazan en était à ce point
agité que le mari de Jeanne ne put s’empêcher de remarquer, un
soir :
— Je crois qu’il sait réellement. Il a compris que nous préparions
notre départ. Mais quand pourrons-nous partir ? Le fleuve a
recommencé hier à déborder et il est, pour l’instant, impossible d’y
naviguer. Si l’inondation continue, nous serons encore ici dans huit
jours, peut-être plus longtemps.
Quelques jours s’écoulèrent encore et le moment arriva où,
durant la nuit, la pleine lune éclaira de son éblouissante clarté le
sommet du Sun Rock. Louve Grise en profita pour effectuer, avec
ses trois petits, tout titubants derrière elle, sa première sortie hors de
la tanière.
Les trois petites boules velues tombaient et trébuchaient à
chaque pas, et se tassaient contre elle, aussi empotées de leurs
mouvements que le bébé de la cabane. Kazan les observait avec
curiosité. Il les entendait émettre les mêmes sons inarticulés et doux,
les mêmes pleurnichements, et il les regardait comme faisait l’enfant
de Jeanne sur ses deux petites jambes, s’en aller tout de travers sur
leurs quatre pattes molles. Spectacle qui le remplissait d’une joie
infinie.
Lorsque la lune fut au zénith et que la nuit fut presque devenue
l’égale du jour, Kazan s’arracha à la contemplation de sa progéniture
et, dégringolant du rocher, partit en chasse.
Il rencontra, dès l’abord, un gros lapin blanc, qui se sauva entre
ses pattes. Durant un demi-mille, il le poursuivit sans pouvoir le
rejoindre. Il comprit qu’il était plus sage d’abandonner la partie. Il
aurait, en effet, lassé à la course un renne ou un caribou, qui vont
devant eux en ouvrant une large piste, facile à suivre. Il n’en est pas
de même pour le petit gibier, qui se glisse sous les taillis et parmi les
fourrés, et qu’un simple renard est plus apte à atteindre qu’un loup.
Il continua donc à battre la forêt, en furetant silencieusement, à
pas de velours, et il eut la chance de tomber à l’improviste sur un
autre lapin blanc, qui ne l’avait pas entendu. Un bond rapide, puis un
second mirent dans sa gueule le souper escompté de Louve Grise.
Kazan s’en revint en trottinant, tout tranquillement, déposant de
temps à autre sur le soi, pour se reposer les mâchoires, le lapin
botté de neige [19] qui pesait bien sept livres.
[19] Surnom donné couramment, au Canada, aux
lapins blancs.

Parvenu au pied du Sun Rock et à la piste étroite qui s’élevait


vers le sommet, il s’arrêta net. Il y avait sur cette piste l’odeur, tiède
encore, de pas étrangers.
Du coup, le lapin lui en tomba des mâchoires. Une étincelle
électrique courut soudain sur chaque poil de son corps. L’odeur qu’il
flairait n’était point celle d’un lapin, d’une martre ou d’un porc-épic.
C’étaient des griffes acérées qui avaient marqué leur empreinte sur
le sol et escaladé le rocher.
En ce moment lui parvinrent des bruits effrayants et confus, qui
lui firent grimper, d’un seul trait, avec un hurlement terrible, l’abrupt
sentier.
Un peu au-dessous du sommet, dans la blanche clarté lunaire,
sur une étroite plate-forme pratiquée dans le roc et qui surplombait
le vide, Louve Grise était engagée dans une lutte à mort avec un
énorme lynx gris. Elle était tombée sous son adversaire, et poussait
des cris aigus et désespérés.
Après être, un instant, demeuré comme cloué sur place, Kazan,
tel un trait de flèche, se rua à la bataille. Ce fut l’assaut muet et
rapide du loup, combiné avec la stratégie plus savante du husky.
Un autre animal aurait succombé dès la première attaque. Mais
le lynx est la créature la plus souple et la plus alerte de Wilderness.
Aussi les Indiens l’appellent-ils « le Rapide ». Kazan avait visé la
veine jugulaire et avait compté que ses crocs longs d’un pouce, s’y
agripperaient profondément. Le lynx, en une fraction infinitésimale
de seconde, s’était rejeté en arrière et les crocs de Kazan ne
saisirent que la masse cotonneuse et touffue des poils de son cou.
L’adversaire avec lequel il avait à lutter, et qui avait abandonné
Louve Grise, était autrement redoutable qu’un loup ou un husky. Une
fois déjà, il s’était trouvé aux prises avec un lynx, tombé dans une
trappe, et il avait tiré du combat des leçons utiles.
Il savait qu’il ne convient pas de s’efforcer à renverser le lynx sur
le dos, comme on doit le faire avec un autre adversaire. Car le gros
chat du Wild se bat des griffes plus encore que des crocs. Et ces
griffes, coupantes comme autant de rasoirs, ont vite fait alors de
lacérer le ventre de son ennemi et de lui ouvrir les entrailles.
Kazan, derrière lui, entendait Louve Grise, grièvement blessée,
gémir et hurler lamentablement. Il tenta de renouveler son emprise
mortelle à la gorge. Mais, cette fois encore, le coup rata et le lynx
échappa à la mort, de moins d’un pouce. Kazan, pourtant, l’avait
solidement saisi et il ne le lâcha plus.
Les deux bêtes demeurèrent étroitement aux prises. Les griffes
du gros chat labouraient les côtes de Kazan, sans atteindre,
heureusement, aucune partie vitale. Soudain, si exigu était l’espace
où ils combattaient, les deux adversaires arrivèrent, sans qu’ils s’en
rendissent compte, au bord du rocher et, brusquement, culbutèrent
ensemble dans le vide.
Ce fut une chute de cinquante à soixante pieds, durant laquelle
Kazan et le lynx tournèrent plusieurs fois sur eux-mêmes. Ils luttaient
avec une telle rage que les crocs de Kazan ne perdirent point leur
emprise et que le lynx continuait à jouer des pattes et des griffes.
Le heurt de leurs deux corps contre le sol fut si rude qu’il les
sépara et les envoya rouler à une douzaine de pieds l’un de l’autre.
Kazan s’était aussitôt relevé et avait couru vers le lynx afin de
reprendre la bataille. Mais le lynx gisait par terre, immobile et
flasque, inondé du sang qui, à gros bouillons, ruisselait de sa gorge.
Ce que voyant, prudemment il s’approcha, reniflant, et sur la
défensive contre toute ruse éventuelle. Il put constater pourtant que
la victoire lui restait et que le gros félin était bien mort. Alors il se
traîna vers Louve Grise.
Il la retrouva dans la tanière, près des corps de ses trois petits,
que le lynx avait mis en pièces. Elle pleurnichait et se lamentait en
face d’eux. Kazan, pour la consoler, se mit à lui lécher la tête et les
épaules, qui saignaient. Durant tout le reste de la nuit, elle continua
à gémir affreusement.
Ce fut seulement lorsque le jour fut venu qu’il fut loisible à Kazan
de constater, en son entier, le terrible travail du lynx. Louve Grise
était aveugle. Ses yeux étincelants étaient désormais fermés à la
lumière, non pas pour un jour ou pour une nuit, mais pour toujours.
D’obscures ténèbres, qu’aucun soleil ne pourrait plus percer, avaient
mis leur linceul sur ses prunelles.
Et, par cet instinct naturel qui est dans la bête pour tout ce qu’elle
ne saurait raisonner, Kazan comprit que sa compagne était, de ce
moment, devenue plus impuissante dans la vie que les infortunées
petites créatures qui, quelques heures auparavant, gambadait
autour d’elle.
En vain, toute la journée, Jeanne l’appela. Lorsque sa voix
arrivait au Sun Rock, Louve Grise, qui l’entendait, se pressait
davantage, apeurée, contre Kazan. Kazan rabattait incontinent ses
oreilles et plus affectueusement la léchait.
Vers la fin de l’après-midi, Kazan descendit du Sun Rock et,
après avoir battu quelque temps la forêt, en rapporta à Louve Grise
un lapin blanc. Elle passa son museau sur le poil de la bête, en flaira
la chair, mais refusa de manger.
Désolé, Kazan songea que le voisinage des louveteaux morts
causait son chagrin et, en la poussant, avec de petits aboiements
engageants, il l’invita à descendre du tragique rocher. Louve Grise le
suivit et, tout en glissant, en atteignit la base. Puis, sans cesser de
toucher du museau le flanc de son guide, elle partit avec lui, sous les
sapins.
Le premier fossé un peu profond qu’il fallut franchir l’arrêta et de
son impuissance, plus encore, Kazan se rendit compte. Vainement il
l’invitait à s’élancer et à sauter avec lui. Elle pleurnichait, et vingt fois
se coucha sur le sol, avant d’oser le bond nécessaire. Elle le risqua
enfin, d’un saut raide et sans souplesse, et s’abattit lourdement près
de Kazan. Et moins que jamais, après cela, elle s’éloigna de lui, si
peu que ce fût. Elle sentait que pour être en sûreté, son flanc ne
devait plus quitter le flanc de son compagnon, ni son museau son
épaule.
Ils firent ainsi un demi-mille. Louve Grise, qui apprenait à
marcher dans sa cécité, chancelait et tombait à tout moment. Un
lapin chaussé de neige étant apparu dans le crépuscule, Kazan
courut à sa poursuite et, instinctivement, après avoir effectué une
vingtaine de bonds, regarda en arrière si Louve Grise le suivait. Elle
était demeurée immobile, comme figée sur ses pattes. Il abandonna
le lapin et revint vers elle.
Ensemble ils passèrent la nuit dans un fourré et, le lendemain
seulement, Kazan, y laissant Louve Grise, alla rendre visite à la
cabane.
Il y trouva la jeune femme et son mari, qui s’aperçurent aussitôt
des blessures, mal cicatrisées, qu’il portait aux épaules et aux
flancs.
— Ce ne peut être qu’avec un ours ou un lynx qu’il s’est battu,
remarqua l’homme. Un loup ne lui aurait point fait de pareilles
blessures.
Ces blessures, Jeanne les pansa de sa main douce. Tout en
parlant à Kazan, elle les lava à l’eau tiède, les oignit d’une salutaire
pommade, et Kazan en éprouva un bien-être délicieux. Une demi-
heure durant, il se reposa sur le pan de la robe de la jeune femme,
qui s’était assise tout exprès, près de lui. Puis il la regarda
béatement, qui allait et venait dans la chambre, rangeait des
paquets mystérieux et préparait le repas.
Le jour s’écoula ainsi, loin de la forêt oubliée, et la lune était déjà
levée lorsque Kazan se décida à rejoindre Louve Grise. Si Jeanne
avait pu deviner que la pauvre bête, pour qui Kazan désormais était
tout dans la vie, le soleil, les étoiles, la lune et la subsistance, gisait
dans son fourré, elle aurait été elle-même secourir Louve Grise.
Mais elle l’ignorait.
Huit jours passèrent encore, durant lesquels, reprenant ses
vieilles habitudes, Kazan partagea son temps entre le fourré et la
cabane. Puis, une après-midi, l’homme lui mit au cou un collier muni
d’une solide lanière, qu’il attacha ensuite à un crampon de fer, dans
le mur de bûches.
On l’y laissa, toute la journée et toute la nuit, et le lendemain, dès
le point du jour, Jeanne et son mari furent debout.
Le mari de Jeanne prit dans ses bras le bébé et sortit le premier.
Jeanne suivit, tenant en main la lanière et Kazan. La porte de la
cabane fut refermée et solidement verrouillée, des planches et des
troncs de jeunes arbres furent cloués extérieurement sur les volets,
et le cortège descendit vers la berge du fleuve, où une grande
pirogue attendait, toute chargée. La veille, un autre homme était
venu et avait emmené avec lui le traîneau et les chiens de l’attelage.
Dans la pirogue Jeanne monta d’abord, avec l’enfant et avec
Kazan, qu’elle fit coucher auprès d’elle. Elle prit place au gouvernail,
son mari se saisit des rames et l’embarcation s’éloigna du rivage, au
fil de l’eau.
La jeune femme, tenant toujours en main la lanière qui retenait
Kazan, se retourna vers la cabane, qui allait disparaître derrière les
arbres, et la salua d’un geste. Une grande émotion était empreinte
sur son visage. Ses yeux étaient humides de larmes.
— Adieu ! Adieu ! s’écria-t-elle.
— Tu n’as pas de chagrin au moins ? lui demanda son mari. Cela
te contrarie que nous partions ?
— Non, non ! répondit-elle vivement. Mais j’aimais ces belles
forêts et cette sauvage nature. Presque toute ma vie s’y est écoulée,
en compagnie de mon pauvre père, dont je laisse le corps derrière
moi. Aucune ville, pour moi, ne vaudra jamais cela.
Un sanglot s’étrangla dans sa gorge et elle reporta ses yeux vers
le bébé…
Depuis quelques minutes, la pirogue, prise par le courant, filait
rapidement.
Se détachant d’une des rives du large fleuve, une longue bande
de sable s’avançait dans l’eau et formait une sorte de presqu’île
plate et dénudée.
Le mari de Jeanne, l’appelant, lui montra, sur cette langue
sablonneuse, une petite tache sombre qui allait et venait. Elle
reconnut Louve Grise, Louve Grise dont les yeux éteints se
tournaient vers Kazan. A défaut de la vue, l’air, qu’elle humait, lui
disait que Kazan, et l’homme et la femme avec lui, s’en allaient, s’en
allaient, s’en allaient…
Kazan s’était dressé, raide, sur ses pattes, et regardait.
Louve Grise, cependant, qui comprenait, au bruit des rames, que
la pirogue s’éloignait, était venue tout au bord de l’eau. Là, s’étant
assise sur son derrière, elle leva la tête vers ce soleil qui pour elle
n’avait plus de rayons, et jeta à l’adresse de Kazan une longue et
retentissante clameur.
La lanière glissa de la main de Jeanne. La pirogue fit une
formidable embardée et un gros corps brun troua l’air. Kazan avait
disparu.
Déjà l’homme avait pris et épaulé son fusil dans la direction de
Kazan, qui nageait.
— Le gredin ! dit-il. Il nous brûle la politesse ! Je vais
t’apprendre…
Non moins rapide, Jeanne avait arrêté son geste. Elle était toute
pâle et cria :
— Non ! ne tire pas ! Laisse-le retourner vers elle ! Laisse-le,
laisse-le !… Là est sa place !
Kazan, ayant atteint le rivage, secoua ses poils ruisselants. Une
dernière fois, il regarda vers la pirogue qui emmenait Jeanne et qui,
quelques minutes après, avait disparu.
Louve Grise l’avait emporté !
XII
DANS LES JOURS DU FEU

De plus en plus, désormais, Kazan oubliait son ancienne vie de


chien de traîneau. Ce n’était plus pour lui qu’une lointaine
réminiscence, comme ces souvenirs effacés qui remontent parfois
en nous, semblables à des feux dans la nuit.
La naissance et la mort des louveteaux, la tragédie terrible du
Sun Rock, le combat avec le lynx et la cécité de Louve Grise, qui en
avait résulté, puis le départ de Jeanne et du bébé, occupaient seuls
son esprit.
La vengeance tirée du lynx n’avait pas rendu la vue à Louve
Grise et c’était pour Kazan un désappointement perpétuel qu’elle ne
fût plus capable de chasser avec lui, dans la plaine infinie ou dans la
forêt obscure. Aussi sa rancune contre les tribus de lynx était-elle
vivace et profonde, et il était devenu l’ennemi mortel de toute la race.
Non seulement il attribuait au lynx la cécité de Louve Grise et la
mort des louveteaux, mais encore le départ de Jeanne et de l’enfant.
Et, chaque fois que son flair découvrait l’odeur du gros chat gris, il
devenait furieux comme un démon, grimaçant et grognant en
retroussant ses lèvres sur ses longs crocs. Toute l’ancestrale
sauvagerie du Wild reparaissait en lui.
Un nouveau code de vie s’était établi peu à peu entre Kazan et
sa compagne aveugle. Lorsqu’ils cheminaient ensemble, Louve
Grise avait appris à ne point le perdre, en se tenant flanc à flanc,
épaule à épaule avec lui, et Kazan, de son côté, savait, poux qu’ils
demeurassent unis, qu’il ne devait point bondir, mais toujours trotter.
Il comprenait aussi qu’il devait choisir un terrain facilement
accessible aux pattes de Louve Grise. Et, s’il arrivait à un endroit
qu’il fallait franchir d’un bond, il touchait Louve Grise de son museau
et poussait de petits cris plaintifs. Alors elle dressait les oreilles et
prenait son élan. Mais, comme elle ne pouvait calculer la longueur
exacte du saut nécessaire, elle sautait toujours, afin de ne point
risquer de tomber à mi-route, plus loin qu’il n’était utile. Ce qui,
parfois, présentait aussi ses inconvénients. Ainsi, les deux animaux
en étaient arrivés à se comprendre.
Enfin, l’odorat et l’ouïe s’étaient, en compensation de la vue
perdue, développés avec plus d’acuité chez Louve Grise. Et toujours
Kazan, qui l’avait remarqué, observait sa compagne et s’en référait à
elle, s’il s’agissait, soit d’écouter un bruit suspect, soit de humer l’air
ou de flairer une piste.
Au moment où la pirogue avait disparu, un instinct plus infaillible
que le raisonnement avait dit à Kazan que Jeanne, son bébé et son
mari étaient partis pour ne plus revenir. Et cependant, de la tanière
où il s’était installé pour l’été, avec Louve-Grise, sous un épais
bouquet de sapins et de baumiers, proche du fleuve, il s’obstina,
chaque jour, des semaines durant, à venir interroger la cabane.
Impatient, il guettait quelque signe de vie. Mais la porte ne
s’ouvrait jamais. Les planches et les petits troncs d’arbres étaient
toujours cloués aux volets des fenêtres et, de la cheminée, pas une
spirale de fumée ne s’élevait. Les herbes et les plantes grimpantes
commençaient à recouvrir le sentier et les murs de bûches, et
l’odeur de l’homme, imprégnée à ces murs, qu’il reniflait, se faisait
de plus en plus faible.
Un jour il trouva, sous une des fenêtres closes, un petit mocassin
d’enfant. Il était vieux et usé, noirci par la neige et la pluie. Il suffit
pourtant à faire le bonheur de Kazan, qui se coucha tout à côté et
demeura là de longues heures. Et, durant ce temps, à ce même
moment, le bébé, à des milliers de milles de distance, était en train
de se divertir avec les jouets merveilleux inventés par la civilisation.
Ce ne fut qu’à la fin de la journée que Kazan s’en alla rejoindre
Louve Grise, parmi les sapins et les baumiers.
Il n’y avait que dans ces visites à la cabane que Louve Grise
n’accompagnait pas Kazan. Tout le reste du temps, les deux bêtes
étaient inséparables. Lorsqu’elles avaient pisté un gibier, Kazan
prenait la chasse, et Louve Grise l’attendait. Les lapins blancs
étaient leur pâture ordinaire. Par une belle nuit de clair de lune, il
arriva, une fois, à Kazan de fatiguer à la course un jeune daim et de
le tuer. Comme la proie était trop lourde pour qu’il pût la rapporter à
Louve Grise, il courut la chercher et la ramena vers le lieu du festin.
Puis advint le grand incendie.
Louve Grise en saisit l’odeur alors que le feu était encore à deux
jours à l’ouest. Le soleil, ce soir-là, se coucha dans un nuage blafard
et sinistre. La lune, qui lui succéda, à l’opposé du ciel, parut toute
rouge et pourprée. Lorsqu’elle surgit ainsi du désert, les Indiens la
nomment la « Lune Saignante » et l’air s’emplit pour eux de
présages funestes.
Le lendemain matin, Louve Grise devint étrangement nerveuse
et, vers midi, Kazan, à son tour, flaira dans l’air l’avertissement
qu’elle avait perçu bien des heures avant lui. L’odeur, de minute en
minute, augmentait d’intensité et, un peu plus tard dans la journée,
le soleil se voila d’une couche de fumée.
Le feu, qui courait dans les bois et les forêts de sapins et de
baumiers, avait commencé par faire rage dans la direction du nord.
Puis le vent sauta du sud à l’ouest, rabattant en direction contraire
les colonnes de fumée. Il devenait de plus en plus probable que
l’incendie ne s’arrêterait qu’au bord du fleuve, vers lequel le brasier
mouvant pourchassait devant lui mille bêtes affolées.
Pendant la nuit qui suivit, le ciel continua à s’embraser d’une
immense lueur fuligineuse et, lorsque le jour parut, la chaleur et la
fumée devinrent intenables et suffocantes.
Saisi de panique, Kazan s’évertuait à trouver un moyen
d’échapper. Il lui eût été facile, quant à lui, de traverser le fleuve à la
nage. Mais Louve Grise, qu’il n’avait point quittée une seconde, s’y
refusait. Dès le premier contact de ses griffes avec l’eau, au bord de
laquelle il l’avait amenée, elle s’était reculée, en contractant tous ses
muscles. A douze reprises différentes, il s’élança dans le courant et
nagea en l’appelant. Tout ce à quoi Louve Grise consentit, ce fut à
s’avancer dans l’eau tant qu’elle avait pied. Puis, avec obstination,
elle revenait toujours en arrière.
Maintenant on pouvait entendre le sourd mugissement du feu.
Élans, rennes, daims, caribous se jetaient à l’eau et, fendant le
courant, gagnaient sans peine la rive opposée. Un gros ours noir,
accompagné de ses deux oursons, qui se traînaient lourdement, fit
de même, et les petits le suivirent. Kazan le regarda, de ses yeux
ardents, et se mit à gémir vers Louve Grise, qui se refusait à bouger.
D’autres bêtes sauvages du Wild, qui redoutaient l’eau autant
qu’elle, et ne voulaient pas, ou ne pouvaient pas nager, vinrent se
réfugier sur la bande de sable étroite et dénudée qui, un peu plus
loin, s’avançait dans le fleuve.
Il y avait là un gros et gras porc-épic, une petite martre aux
formes sveltes, et un chat-pêcheur, qui n’arrêtait pas de renifler l’air
et de geindre comme un enfant. Des centaines d’hermines se
pressaient sur le sable clair, pareilles à une légion de rats, et leurs
petites voix perçantes formaient un chœur ininterrompu. De
nombreux renards couraient, affolés, à la recherche d’un arbre
abattu par le vent en travers du fleuve, qui pût leur servir de pont
pour passer sur l’autre rive. Mais le fleuve était trop large. Il y avait
aussi des frères de race de Louve Grise, des loups, qui hésitaient
devant une traversée à la nage.
Ruisselant d’eau et haletant, à demi suffoqué par la chaleur et la
fumée, Kazan vint prendre place au côté de Louve Grise. Il
comprenait que le seul refuge qui leur restât était la langue de sable
et il se mit en devoir d’y conduire sa compagne.
Comme ils approchaient du petit isthme qui reliait le sable à la
rive, ils sentirent leurs narines se crisper, et n’avancèrent plus
qu’avec précaution. Leur flair leur disait qu’un ennemi n’était pas
loin.
Ils ne tardèrent pas, en effet, à découvrir un gros lynx, qui avait
pris possession du passage et qui, couché sur le sol, s’étalait
largement à l’entrée de la bande de sable. Trois porcs-épics, ne
pouvant passer outre, s’étaient mis en boule, leurs piquants alertés
et frémissants. Un chat-pêcheur, se trouvant dans le même cas,
grognait timidement vers le lynx qui, ayant aperçu Kazan et Louve
Grise, rabattit, ses oreilles et commença à se mettre en garde.
Déjà Louve Grise, pleine d’ardeur et oubliant sa cécité, allait
bondir vers l’ennemi. Kazan, avec un grondement irrité, l’arrêta net,
d’un coup d’épaule, et elle demeura sur place, à la fois écumante et
plaintive, tandis que Kazan marchait seul à la bataille.
A pas légers, les oreilles pointées en avant, sans aucune
menace apparente dans son attitude, il s’avança. C’était la
meurtrière stratégie du husky, habile en l’art de tuer.
Un homme coutumier de la civilisation n’eût pas manqué de
penser que le chien-loup s’approchait du lynx avec des intentions
tout amicales. Mais le lynx savait à quoi s’en tenir. L’instinct
ancestral lui avait appris, à lui aussi, qu’il était en face d’un ennemi.
Ce qu’il ignorait toutefois, c’est que la tragédie du Sun Rock avait fait
cet ennemi plus féroce encore.
Le chat-pêcheur avait compris de son côté qu’une grande bataille
allait se livrer, et il s’écrasa contre terre, au ras du sol. Quant aux
porcs-épics, ils piaulaient éperdument, comme de petits enfants qui
ont grand’peur, et ils dressaient, plus droits, leurs piquants.
Parmi les nuages de fumée, de plus en plus denses, le lynx
s’était aplati sur son ventre, comme font les félins, le train de derrière
ramassé et contracté pour l’élan.
Autour de lui, Kazan se mit à tourner, léger et presque
impondérable, et le lynx pivotait sur lui-même, non moins alerte et
rapide. Huit pieds environ les séparaient.
Ce fut le lynx qui, pareil à une boule, bondit le premier sur son
adversaire. Kazan ne tenta point d’échapper en sautant de côté. Il
para de l’épaule et, comme il avait plus de poids, il encaissa le choc
sans broncher. Le gros chat fut projeté en l’air, avec les lames de
rasoir de ses vingt griffes, et retomba lourdement sur le sol, les
membres en marmelade.
Kazan profita de l’avantage du moment et, sans perdre de temps,
s’élança sur la nuque du lynx.
Louve Grise, à son tour, avait bondi. Sous l’arrière-train de
Kazan, elle implanta ses mâchoires dans une des pattes de derrière
de l’ennemi. L’os craqua.
Le lynx, accablé par le double poids qui pesait sur lui, tenta un
sursaut désespéré. Entraînant avec lui Kazan et la louve, qui purent
heureusement se dégager à temps, il alla retomber sur un des
porcs-épics qui se trouvaient là. Une centaine des redoutables
aiguilles lui entrèrent dans le corps. Fou de douleur et hurlant
comme un possédé, il prit la fuite et, se précipitant dans le brasier, y
disparut parmi la fumée.
Kazan se garda de l’y poursuivre. Le chat-pêcheur gisait comme
un mort, épiant Kazan et Louve Grise de ses petits yeux noirs et
féroces. Les porcs-épics piaulaient et jacassaient pire que jamais,
comme pour implorer grâce.
La flamme, cependant, avait atteint le rivage. L’air était brûlant
comme une fournaise. Kazan et Louve Grise se hâtèrent de venir se
mettre à l’abri, à l’extrémité de la langue de sable, que recouvrait
entièrement une nappe de fumée.
Ils s’y roulèrent sur eux-mêmes, en cachant leur tête sous leur
ventre. Le rugissement de l’incendie ressemblait à celui d’une
grande cataracte et l’on entendait d’énormes craquements, qui
étaient ceux des arbres qui s’écroulaient. L’air s’emplissait de
cendres et de brûlantes étincelles. Plusieurs fois, Kazan dut se
dérouler et, se relevant, secouer les brandons enflammés qui
tombaient sur lui, poussés par le vent, et qui lui roussissaient le poil
et brûlaient la peau, comme autant de fers rouges.
Sur les rives du fleuve poussait, le pied dans l’eau, une épaisse
rangée de broussailles vertes, où le feu s’arrêta. Le couple s’y
réfugia. Puis la chaleur et la fumée commencèrent à diminuer
d’intensité.
Mais ce ne fut qu’après un temps assez long que Kazan et Louve
Grise purent dégager leurs têtes et respirer plus librement. Sans
cette propice bande de sable, ils eussent été complètement rôtis.
Car, partout en arrière d’eux, la nature était devenue toute noire et le
sol était entièrement calciné.
La fumée s’éclaircit enfin. Le vent remonta au nord et à l’est, et la
dissipa ou refoula, tout en rafraîchissant l’atmosphère.
Le chat-pêcheur, le premier, se décida à regagner la terre et à
s’en retourner dans ce qui demeurait de la forêt. Mais les porcs-
épics étaient encore enroulés lorsque Kazan et Louve Grise se
décidèrent à quitter leur asile.
Ils marchèrent toute la nuit suivante, en longeant la rive du
fleuve, dont ils remontèrent le courant. La cendre était chaude et leur
brûlait douloureusement les pattes. La lune était rouge encore et
sinistre, et semblait toujours un éclaboussement de sang dans le
ciel.
Durant les longues heures où cheminèrent côte à côte les deux
bêtes, tout était silence autour d’elles. Rien, pas même le hululement
d’une chouette. Car, devant le grand feu, tous les oiseaux avaient fui
aussi, à tire-d’aile, sur l’autre rive. Aucun signe de vie ne subsistait
sur cette terre qui, hier encore, constituait, pour les hôtes sauvages
du Wild, un paradis.
Kazan savait que, pour trouver sa nourriture et celle de Louve
Grise, il lui fallait aller plus loin, beaucoup plus loin.
A l’aurore, le couple arriva à un endroit où le fleuve, déjà moins
large, formait une sorte de marais.
Des castors y avaient construit une digue, grâce à laquelle Kazan
et Louve Grise purent enfin passer sur la rive opposée, où la terre
redevenait verte et féconde.
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.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like