#include "util_ioreg.hpp"
#include "stm8l15x_conf.h"
uint8 x;
void test_io1(void)
{
//IO_REG_BIT_t<uint8>::AttachIo(&io).set(0).clr(1).toggle(2).write(3,0).write(4,1).read(5,x).write(6,x);
//第0位清零,第1位置1,第2位翻转,第3位写0,第4位写1,第5位读取到x,第6位写x
//优化用小写
IO_REG_BIT_t<uint8>::AttachIo(&GPIOD->ODR).Set(0).Clr(1).Toggle(2).Write(3,0).Write(4,1).Read(5,x).Write(6,x);
//第0位清零,第1位置1,第2位翻转,第3位写0,第4位写1,第5位读取到x,第6位写x
//防优化用大写
}
void test_io2(void)
{
//IO_REG_FIELD_t<uint8,2,3>::AttachIo(&io).write(3).write(4).read(x).write(~x);
//第2位开始,3个位的值,写3,写4,读取到x,写入~x
//优化用小写
IO_REG_FIELD_t<uint8,2,3>::AttachIo(&GPIOD->ODR).Write(3).Write(4).Read(x).Write(~x);
//第2位开始,3个位的值,写3,写4,读取到x,写入~x
//防优化用大写
}
int main()
{
test_io1();
test_io2();
while(1);
}
|