|
PIC18F2331_10 Datasheet, PDF (322/392 Pages) Microchip Technology – 28/40/44-Pin Enhanced Flash Microcontrollers with nanoWatt Technology, High-Performance PWM and A/D | |||
|
◁ |
PIC18F2331/2431/4331/4431
TBLWT
Syntax:
Operands:
Operation:
Status Affected:
Encoding:
Description:
Table Write
[ label ] TBLWT ( *; *+; *-; +*)
None
if TBLWT*,
(TABLAT) ï® Holding Register,
TBLPTR â No Change;
if TBLWT*+,
(TABLAT) ï® Holding Register,
(TBLPTR) + 1 ï® TBLPTR;
if TBLWT*-,
(TABLAT) ï® Holding Register,
(TBLPTR) â 1 ï® TBLPTR;
if TBLWT+*,
(TBLPTR) + 1 ï® TBLPTR,
(TABLAT) ï® Holding Register
None
0000
0000
0000 11nn
nn = 0 *
=1 *+
=2 *-
=3 +*
This instruction uses the 3 LSBs of
TBLPTR to determine which of the
8 holding registers the TABLAT is written
to. The holding registers are used to
program the contents of Program Memory
(P.M.). (Refer to Section 8.0 âFlash Pro-
gram Memoryâ for additional details on
programming Flash memory.)
The TBLPTR (a 21-bit pointer) points to
each byte in the program memory.
TBLPTR has a 2-Mbyte address range.
The LSb of the TBLPTR selects which
byte of the program memory location to
access.
TBLPTR[0] = 0: Least Significant Byte
of Program Memory
Word
TBLPTR[0] = 1: Most Significant Byte
of Program Memory
Word
The TBLWT instruction can modify the
value of TBLPTR as follows:
⢠no change
⢠post-increment
⢠post-decrement
⢠pre-increment
TBLWT Table Write (Continued)
Words: 1
Cycles: 2
Q Cycle Activity:
Q1
Q2
Q3
Decode
No
operation
No
operation
No
operation
(Read
TABLAT)
No
operation
No
operation
Q4
No
operation
No
operation
(Write to
Holding
Register )
Example 1:
TBLWT *+;
Before Instruction
TABLAT
=
TBLPTR
=
HOLDING REGISTER
(0x00A356)
=
0x55
0x00A356
0xFF
After Instructions (table write completion)
TABLAT
= 0x55
TBLPTR
= 0x00A357
HOLDING REGISTER
(0x00A356)
= 0x55
Example 2:
TBLWT +*;
Before Instruction
TABLAT
=
TBLPTR
=
HOLDING REGISTER
(0x01389A)
=
HOLDING REGISTER
(0x01389B)
=
0x34
0x01389A
0xFF
0xFF
After Instruction (table write completion)
TABLAT
= 0x34
TBLPTR
= 0x01389B
HOLDING REGISTER
(0x01389A)
= 0xFF
HOLDING REGISTER
(0x01389B)
= 0x34
DS39616D-page 322
ï£ 2010 Microchip Technology Inc.
|
▷ |