HT46R01/HT46R02/HT46R03
H
T
4
6
R
0
1
H
T
4
6
R
0
2
H
T
4
6
R
0
3
0
0
0
0
0
0
0
4
8
H
H
H
I
n
i
t
i
a
l
i
s
a
t
i
o
n
I
n
i
t
i
a
l
i
s
a
t
i
o
n
I
n
i
t
i
a
l
i
s
a
t
i
o
n
V
e
c
t
o
r
V
e
c
t
o
r
V
e
c
t
o
r
E
x
t
e
r
n
a
l
E
x
t
e
r
n
a
l
E
x
t
e
r
n
a
l
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
T
i
m
e
r
/
E
v
e
n
t
C
o
u
n
t
e
r
0
T
i
m
e
r
/
E
v
e
n
t
C
o
u
n
t
e
r
0
T
i
m
e
r
/
E
v
e
n
t
C
o
u
n
t
e
r
0
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
0
0
C
H
A
/
D
C
o
n
v
e
r
t
e
r
T
i
m
e
r
/
E
v
e
n
t
C
o
u
n
t
e
r
1
T
i
m
e
r
/
E
v
e
n
t
C
o
u
n
t
e
r
1
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
0
1
0
H
A
/
D
C
o
n
v
e
r
t
e
r
A
/
D
C
o
n
v
e
r
t
e
r
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
I
n
t
e
r
r
u
p
t
V
e
c
t
o
r
0
1
4
H
3
4
8
0
0
0
0
0
0
H
3
7
F
F
F
F
H
H
H
H
N
o
t
I
m
p
l
e
m
e
n
t
e
d
F
F
F
H
1
4
b
i
t
s
1
4
b
i
t
s
1
5
b
i
t
s
Program Memory Structure
·
Location 00CH
Program Memory will be transferred to the TBLH special
register. Any unused bits in this transferred higher order
byte will be read as ²0².
For the HT46R01 devices, this internal vector is used
by the A/D converter. When an A/D conversion cycle
is complete, the program will jump to this location and
begin execution if the A/D interrupt is enabled and the
stack is not full. For the HT46R02 and HT46R03 de-
vices, this vector is used by the Timer/Event Counter
1. If a Timer/Event Counter 1overflow occurs, the pro-
gram will jump to this location and begin execution if
the Timer/Event counter 1 interrupt is enabled and the
stack is not full.
The following diagram illustrates the addressing/data
flow of the look-up table:
P
r
o
g
r
a
m
C
o
u
n
t
e
r
H
i
g
h
B
y
t
e
P
r
o
g
r
a
m
M
e
m
o
r
y
T
B
L
P
·
Location 010H
This internal vector is only used by the A/D interrupt
converter in the HT46R02 and HT46R03 devices.
When an A/D conversion cycle is complete, the pro-
gram will jump to this location and begin execution if
the A/D interrupt is enabled and the stack is not full.
T
B
L
H
S
p
e
c
i
f
i
e
d
b
y
[
m
]
T
a
b
l
e
C
o
n
t
e
n
t
s
L
o
w
B
y
t
e
T
a
b
l
e
C
o
n
t
e
n
t
s
H
i
g
h
B
y
t
e
Table Program Example
The following example shows how the table pointer and
table data is defined and retrieved from the HT46R02
devices. This example uses raw table data located in
the last page which is stored there using the ORG state-
ment. The value at this ORG statement is ²700H² which
refers to the start address of the last page within the 2K
Program Memory of the HT46R02 microcontrollers. The
table pointer is setup here to have an initial value of
²06H². This will ensure that the first data read from the
data table will be at the Program Memory address
²706H² or 6 locations after the start of the last page.
Note that the value for the table pointer is referenced to
the first address of the present page if the ²TABRDC
[m]² instruction is being used. The high byte of the table
data which in this case is equal to zero will be trans-
ferred to the TBLH register automatically when the
²TABRDL [m]² instruction is executed.
Look-up Table
Any location within the Program Memory can be defined
as a look-up table where programmers can store fixed
data. To use the look-up table, the table pointer must
first be setup by placing the lower order address of the
look up data to be retrieved in the table pointer register,
TBLP. This register defines the lower 8-bit address of
the look-up table.
After setting up the table pointer, the table data can be
retrieved from the current Program Memory page or last
Program Memory page using the ²TABRDC[m]² or
²TABRDL [m]² instructions, respectively. When these in-
structions are executed, the lower order table byte from
the Program Memory will be transferred to the user de-
fined Data Memory register [m] as specified in the in-
struction. The higher order table data byte from the
Rev. 1.00
9
September 21, 2007