multi-输入 Wakeup
(持续)
这 multi-输入 Wakeup 特性 运用 这 L Port 这 用户
选择 这个 particular L 端口 位 (或者 结合体 的 L 端口
位) 将 导致 这 设备 至 exit 这 HALT 或者 空闲 modes
这 选择 是 完毕 通过 这 Reg WKEN 这 Reg
WKEN 是 一个 8-位 readwrite register 这个 包含 一个 con-
trol 位 为 每 L 端口 bit 设置 一个 particular WKEN 位
使能 一个 Wakeup 从 这 有关联的 L 端口 pin
这 用户 能 选择 whether 这 触发 情况 在 这
选择 L 端口 管脚 是 going 至 是 也 一个 积极的 边缘 (低
至 高 转变) 或者 一个 负的 边缘 (高 至 低 转变)
这个 选择 是 制造 通过 这 Reg WKEDG 这个 是 一个
8-位 控制 寄存器 和 一个 位 assigned 至 各自 L 端口 pin
设置 这 控制 位 将 选择 这 触发 情况 至 是 一个
负的 边缘 在 那 particular L 端口 pin Resetting 这 位
选择 这 触发 情况 至 是 一个 积极的 edge Changing
一个 边缘 选择 entails 一些 步伐 在 顺序 至 避免 一个
pseudo Wakeup 情况 作 一个 结果 的 这 边缘 change
First 这 有关联的 WKEN 位 应当 是 reset followed 用
这 边缘 选择 改变 在 WKEDG Next 这 有关联的
WKPND 位 应当 是 cleared followed 用 这 有关联的
WKEN 位 正在 re-enabled
一个 例子 将 提供 至 clarify 这个 procedure 假定
我们 wish 至 改变 这 边缘 选择 从 积极的 (低 going
高) 至 负的 (高 going 低) 为 L 端口 位 5 在哪里 位 5
有 先前 被 使能 为 一个 输入 interrupt 这 pro-
gram 将 是 作 follows
RBIT 5 WKEN
SBIT 5 WKEDG
RBIT 5 WKPND
SBIT 5 WKEN
如果 这 L 端口 位 有 被 使用 作 输出 和 然后
changed 至 输入 和 multi-输入 WakeupInterrupt 一个 safe-
ty 程序 应当 也 是 followed 至 避免 inherited
pseudo wakeup conditions 之后 这 选择 L 端口 位
有 被 changed 从 输出 至 输入 但是 在之前 这 作-
sociated WKEN 位 是 enabled 这 有关联的 边缘 se-
lect 位 在 WKEDG 应当 是 设置 或者 重置 为 这 desired
边缘 selects followed 用 这 有关联的 WKPND 位 正在
cleared
这个 一样 程序 应当 是 使用 下列的 reset 自从
这 L 端口 输入 是 left floating 作 一个 结果 的 reset
这 occurrence 的 这 选择 触发 情况 为 multi-在-
放 Wakeup 是 latched 在 一个 pending 寄存器 called
WKPND 这 各自的 位 的 这 WKPND 寄存器 将 是
设置 在 这 occurrence 的 这 选择 触发 边缘 在 这
相应的 端口 L pin 这 用户 有 这 责任 的
clearing 这些 pending flags 自从 WKPND 是 一个 pending
寄存器 为 这 occurrence 的 选择 wakeup conditions
这 设备 将 不 enter 这 HALT 模式 如果 任何 Wakeup 位 是
两个都 使能 和 pending Consequently 这 用户 有 这
责任 的 clearing 这 pending flags 在之前 attempt-
ing 至 enter 这 HALT mode
这 WKEN WKPND 和 WKEDG 是 所有 readwrite regis-
ters 和 是 cleared 在 reset
端口 L 中断
端口 L 提供 这 用户 和 一个 额外的 第八 全部地 选择-
able 边缘 敏感的 中断 这个 是 所有 vectored 在
这 一样 维护 subroutine
这 中断 从 端口 L shares 逻辑 和 这 wake 向上 cir-
cuitry 这 寄存器 WKEN 准许 中断 从 端口 L 至
是 individually 使能 或者 disabled 这 寄存器 WKEDG
specifies 这 触发 情况 至 是 也 一个 积极的 或者 一个
负的 edge Finally 这 寄存器 WKPND latches 在 这
pending 触发 conditions
这 GIE (global 中断 使能) 位 使能 这 中断
function 一个 控制 flag LPEN 功能 作 一个 global inter-
rupt 使能 为 端口 L interrupts 设置 这 LPEN 标记 将
使能 中断 和 恶行 versa 一个 独立的 global pending
标记 是 不 需要 自从 这 寄存器 WKPND 是 adequate
自从 端口 L 是 也 使用 为 waking 这 设备 输出 的 这
HALT 或者 空闲 modes 这 用户 能 elect 至 exit 这 HALT 或者
空闲 模式 也 和 或者 没有 这 中断 enabled 如果
he elects 至 使不能运转 这 interrupt 然后 这 设备 将 重新开始
执行 从 这 操作指南 立即 下列的 这 在-
构造 那 放置 这 微控制器 在 这 HALT 或者
空闲 modes 在 这 其它 case 这 设备 将 第一 execute
这 中断 维护 routine 和 然后 revert 至 正常的 oper-
ation
这 Wakeup 信号 将 不 开始 这 碎片 运动 立即的-
ly 自从 结晶 oscillators 或者 陶瓷的 resonators 有 一个 fi-
nite 开始 向上 time 这 空闲 计时器 (t0) 发生 一个 fixed
延迟 至 确保 那 这 振荡器 有 indeed stabilized 是-
fore 准许 这 执行 的 instructions 在 这个 case
在之上 detecting 一个 有效的 Wakeup signal 仅有的 这 振荡器
电路系统 和 这 空闲 计时器 T0 是 enabled 这 空闲 tim-
er 是 承载 和 一个 值 的 256 和 是 clocked 从 这 t
c
操作指南 循环 clock 这 t
c
时钟 是 获得 用 dividing
向下 这 振荡器 时钟 用 一个 因素 的 10 一个 施密特 触发
下列的 这 CKI 在-碎片 反相器 确保 那 这 空闲 tim-
er 是 clocked 仅有的 当 这 振荡器 有 一个 sufficiently 大
振幅 至 满足 这 施密特 触发 specifications 这个
施密特 触发 是 不 部分 的 这 振荡器 关闭 loop 这
startup timeout 从 这 空闲 计时器 使能 这 时钟 sig-
nals 至 是 routed 至 这 rest 的 这 chip
如果 这 RC 时钟 选项 是 used 这 fixed 延迟 是 下面 软-
ware control 一个 控制 flag CLKDLY 在 这 G7 configura-
tion 位 准许 这 时钟 开始 向上 延迟 至 是 optionally insert-
ed 设置 CLKDLY 标记 高 将 导致 时钟 开始 向上 延迟
至 是 inserted 和 resetting 它 将 exclude 这 时钟 开始 向上
delay 这 CLKDLY 标记 是 cleared 在 reset 所以 这 时钟
开始 向上 延迟 是 不 呈现 下列的 重置 和 这 RC
时钟 options
中断
这 设备 支持 一个 vectored 中断 scheme 它 sup-
端口 一个 总的 的 ten 中断 sources 这 下列的 表格
lists 所有 这 可能 中断 sources 它们的 arbitration 分级-
ing 和 这 记忆 locations 保留 为 这 中断 vec-
tor 为 各自 source
httpwwwnationalcom
14