微控制器寄存器访问与启动代码实现
1. 微控制器寄存器访问
在微控制器编程中,寄存器操作是基础且关键的部分。下面将介绍一些通用的寄存器访问模板和位映射结构。
1.1 通用寄存器访问模板
基于之前的 reg_set() 子程序,我们可以为 reg_access_static 结构添加更多功能,如逻辑和位操作。
template<typename addr_type,
typename reg_type,
const addr_type addr,
const reg_type val>
struct reg_access_static
{
static void reg_set()
{
*reinterpret_cast<volatile reg_type*>(addr) = val;
}
static void reg_or()
{
*reinterpret_cast<volatile reg_type*>(addr) |= val;
}
};
reg_or() 函数与 reg_set() 函数类似,区别在于 reg_or() 使用逻辑或运算符。例如,将 portb.5 设置为 1:
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



