1996 微芯 技术 公司 ds30412c-页 45
PIC17C4X
7.1 T
能 写 至 内部的 记忆
一个 表格 写 运作 至 内部的 记忆 导致 一个
长 写 运作. 这 长 写 是 需要 为
程序编制 这 内部的 非易失存储器. 操作指南 execu-
tion 是 halted 当 在 一个 长 写 循环. 这 长 写
将 是 terminated 用 任何 使能 中断. 至 确保
那 这 非易失存储器 location 有 被 好 编写程序,
一个 最小 程序编制 时间 是 必需的 (看 specifi-
cation #d114 ). having 仅有的 一个 中断 使能 至
terminate 这 长 写 确保 那 非 unintentional
中断 将 prematurely terminate 这 长 写.
这 sequence 的 events 为 程序编制 一个 内部的
程序 记忆 location 应当 是:
1. 使不能运转 所有 中断 来源, 除了 这 源
至 terminate 非易失存储器 程序 写.
2. raise mclr
/v
PP
管脚 至 这 程序编制 volt-
age.
3. clear 这 wdt.
4. 做 这 表格 写. 这 中断 将 terminate
这 长 写.
5. 核实 这 记忆 location (表格 读).
便条:
程序编制 (所需的)东西 必须 是 符合.
看 定时 规格 在 电的 规格-
ifications 为 这 desired 设备. violating
这些 specifications (包含 tempera-
ture) 将 结果 在 非易失存储器 locations 那
是 不 全部地 编写程序 和 将 lose
它们的 状态 在 时间.
7.1.1 terminating 长 写
一个 中断 源 或者 重置 是 这 仅有的 events 那
terminate 一个 长 写 运作. terminating 这 长
写 从 一个 中断 源 需要 那 这 inter-
rupt 使能 和 flag 位 是 设置. 这 glintd 位 仅有的
使能 这 vectoring 至 这 中断 地址.
如果 这 t0cki, ra0/int, 或者 tmr0 中断 源 是
使用 至 terminate 这 长 写; 这 中断 flag, 的
这 最高的 priority 使能 中断, 将 terminate 这
长 写 和 automatically 是 cleared.
如果 一个 附带的 中断 源 是 使用 至 terminate 这
长 写, 这 中断 使能 和 flag 位 必须 是
设置. 这 中断 flag 将 不 是 automatically cleared
在之上 这 vectoring 至 这 中断 vector 地址.
如果 这 glintd 位 是 cleared 较早的 至 这 长 写,
当 这 长 写 是 terminated, 这 程序 将
branch 至 这 中断 vector.
如果 这 glintd 位 是 设置 较早的 至 这 长 写, 当
这 长 写 是 terminated, 这 程序 将 不 vector
至 这 中断 地址.
便条 1:
如果 一个 中断 是 pending, 这 tablwt 是
aborted (一个 nop 是 executed). 这
最高的 priority pending 中断, 从
这 t0cki, ra0/int, 或者 tmr0 来源
那 是 使能, 有 它的 flag cleared.
便条 2:
如果 这 中断 是 不 正在 使用 为 这
程序 写 定时, 这 中断
应当 是 无能. 这个 将 确保 那
这 中断 是 不 lost, 也不 将 它 termi-
nate 这 长 写 prematurely.
表格 7-1: 中断 - 表格 写 interaction
中断
源
GLINTD
使能
位
标记
位
Action
ra0/int, tmr0,
T0CKI
0
0
1
1
1
1
0
1
1
0
x
1
terminate 长 表格 写 (至 内部的 程序
记忆), branch 至 中断 vector (branch clears
flag 位).
毫无
毫无
terminate 表格 写, 做 不 branch 至 中断
vector (flag 是 automatically cleared).
附带的
0
0
1
1
1
1
0
1
1
0
x
1
terminate 表格 写, branch 至 中断 vector.
毫无
毫无
terminate 表格 写, 做 不 branch 至 中断
vector (flag 是 设置).