7
atmega16(l)
2466e–avr–10/02
一个 arithmetic 运作, 这 状态 寄存器 是 updated 至 反映 信息 关于 这
结果 的 这 运作.
程序 流动 是 提供 用 conditional 和 unconditional jump 和 call 说明,
能 至 直接地 地址 这 全部的 地址 空间. 大多数 avr 说明 有 一个 单独的
16-位 文字 format. 每 程序 记忆 地址 包含 一个 16- 或者 32-位 instruction.
程序 flash 记忆 空间 是 分隔 在 二 sections, 这 激励 程序 部分 和
这 应用 程序 部分. 两个都 sections 有 专心致志的 锁 位 为 写 和
读/写 保护. 这 spm 操作指南 那 写 在 这 应用 flash 记忆
部分 必须 reside 在 这 激励 程序 部分.
在 中断 和 子例程 calls, 这 返回 地址 程序 计数器 (pc) 是
贮存 在 这 堆栈. 这 堆栈 是 effectively allocated 在 这 一般 数据 sram, 和
consequently 这 堆栈 大小 是 仅有的 限制 用 这 总的 sram 大小 和 这 用法 的 这
sram. 所有 用户 programs 必须 initialize 这 sp 在 这 重置 routine (在之前 subroutines
或者 中断 是 executed). 这 堆栈 pointer sp 是 读/写 accessible 在 这 i/o
空间. 这 数据 sram 能 容易地 是 accessed 通过 这 five 不同的 寻址
模式 supported 在 这 avr architecture.
这 记忆 spaces 在 这 avr
architecture 是 所有 直线的 和 regular 记忆 maps.
一个 有伸缩性的 中断 单元 有 它的 控制 寄存器 在 这 i/o 空间 和 一个 额外的
global 中断 使能 位 在 这 状态 寄存器. 所有 中断 有 一个 独立的 中断
vector 在 这 中断 vector 表格. 这 中断 有 priority 在 一致 和 它们的
中断 vector 位置. 这 更小的 这 中断 vector 地址, 这 高等级的 这 priority.
这 i/o 记忆 空间 包含 64 地址 为 cpu 附带的 功能 作 控制
寄存器, spi, 和 其它 i/o 功能. 这 i/o 记忆 能 是 accessed directly, 或者 作
这 数据 空间 locations 下列的 那些 的 这 寄存器 文件, $20 - $5f.
ALU
–
arithmetic 逻辑
单位
这 高-效能 avr alu 运作 在 直接 连接 和 所有 这 32 一般
目的 working 寄存器. 在里面 一个 单独的 时钟 循环, arithmetic 行动 在
一般 目的 寄存器 或者 在 一个 寄存器 和 一个 立即的 是 executed. 这
alu 行动 是 分隔 在 三 主要的 categories – arithmetic, logical, 和 位-func-
tions. 一些 implementations 的 这 architecture 也 提供 一个 powerful 乘法器
支承的 两个都 signed/unsigned multiplication 和 fractional format. 看 这 “instruc-
tion set” 部分 为 一个 详细地 描述.
状态 寄存器
这 状态 寄存器 包含 信息 关于 这 结果 的 这 大多数 recently executed
arithmetic 操作指南. 这个 信息 能 是 使用 为 altering 程序 流动 在 顺序 至
执行 conditional 行动. 便条 那 这 状态 寄存器 是 updated 之后 所有 alu
行动, 作 指定 在 这 操作指南 设置 涉及. 这个 将 在 许多 具体情况
除去 这 需要 为 使用 这 专心致志的 对比 说明, 结果 在 faster 和
更多 紧凑的 代号.
这 状态 寄存器 是 不 automatically贮存 当 进去 一个 中断 routine 和
restored 当 returning 从 一个 中断. 这个 必须 是 处理 用 软件.
这 avr 状态 寄存器 – sreg – 是 定义 作:
位 76543210
I T H S V N Z C SREG
读/写 r/w r/w r/w r/w r/w r/w r/w r/w
最初的 value00000000