cpik C compiler for PIC c -18 devices Version 0.6.0 - PiKdev, An IDE ...
cpik C compiler for PIC c -18 devices Version 0.6.0 - PiKdev, An IDE ...
cpik C compiler for PIC c -18 devices Version 0.6.0 - PiKdev, An IDE ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
10 Headers<br />
This section covers several headers that are part of the standard or that are provided as helpers<br />
to write more portable or cleaner code. These headers are not related to a specific library.<br />
10.1 device/p<strong>18</strong>xxxxx.h<br />
The <strong>devices</strong> directory contains an header file <strong>for</strong> each flavor of <strong>PIC</strong><strong>18</strong> device. #include one of these<br />
files when you need to access a register of the the target device (eg: #include ).<br />
10.2 sys/types.h<br />
This header helps you to improve the portability of your code. It defines a set of ANSI-compatible<br />
integeral types as described in section 8.2.2, but is not part of the ANSI standard.<br />
10.3 macro.h<br />
This header provides a set of general purpose handy macro. In the following, reg denotes a 8 bit<br />
signed or unsigned integer, and bit a bit number (0 ≤ bit ≤ 7). macro.h is not part of the ANSI<br />
standard.<br />
Macro Role<br />
BIT_1(reg, bit) Set bit bit of reg variable<br />
BIT_0(reg, bit) Reset bit bit of reg variable<br />
BIT_TST(reg,bit) Return true if bit bit of reg is set.<br />
BIT_TOGGLE(reg, bit) Toggle bit bit of reg<br />
BIT_COPY(treg, tbit, sreg, sbit) Copy bit sbit of sreg to bit tbit of treg<br />
BIT_NCOPY(treg, tbit, sreg, sbit) Copy inverse of bit sbit of sreg to bit tbit of treg<br />
BIT_WRITE(treg, tbit, flag) Copy the boolean value flag to bit tbit of treg<br />
NOP Generate a nop asm instruction<br />
CLEAR_WATCHDOG Generate a clrwdt asm instruction<br />
10.4 pin.h<br />
pin.h provides a set of very handy macros that allow to use the bit of each port thru symbolic<br />
names. This header has been written by Josef Pavlik.<br />
The first step to use them is to specify the logical name of each bit to be used. The general <strong>for</strong>m<br />
of this specification is:<br />
#define <br />
<strong>for</strong> example, the following declare LED to be the logical name corresponding to the bit 3 of port C.<br />
#define LED PORTC3<br />
Such a logical name can be defined <strong>for</strong> ports A,B,C,D or E and must be used with the following<br />
macros:<br />
30