找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

这个单片机函数功能是16位自动重载模式中给定时器设定初值的,赋值给8位寄存器TL0

查看数: 3560 | 评论数: 7 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-9-25 08:45

正文摘要:

废话不多说,先上代码 /************************* 定时器设定计数(16位) *************************                        ...

回复

ID:224104 发表于 2020-9-28 10:48
权威人物 发表于 2020-9-27 16:49
对于NUM验证直接,固定NUM的值,在其他所有地方的NUM使用屏蔽掉

请问具体代码怎么实现呢?
ID:224104 发表于 2020-9-28 10:45
权威人物 发表于 2020-9-27 16:46
亲,移位操作这边建议加括号哦!对于一些符号类型不匹配的也建议手动加强制转换,对于_cror_建议仔细看看的 ...

刚刚查了一下才知道,_cror_ 是字节变量右移,谢谢啦
ID:311846 发表于 2020-9-27 16:49
对于NUM验证直接,固定NUM的值,在其他所有地方的NUM使用屏蔽掉
ID:311846 发表于 2020-9-27 16:46
本帖最后由 权威人物 于 2020-9-27 16:51 编辑

亲,移位操作这边建议加括号哦!对于一些符号类型不匹配的也建议手动加强制转换,对于_cror_建议仔细看看的函数说明,以后对函数有异议麻烦请自行找度娘,一般不会重现偏差。
ID:224104 发表于 2020-9-26 15:33
dzbj 发表于 2020-9-25 20:13
用宏定义写不好么 你这么写是挺方便 但编译后文件大 运行速度也有影响 毕竟要走一个switch

#define FOC  ...

只是单纯想写个库,而且初始化只有一次,不是循环调用,应该不影响运行效率
ID:47286 发表于 2020-9-25 20:13
用宏定义写不好么 你这么写是挺方便 但编译后文件大 运行速度也有影响 毕竟要走一个switch

#define FOC 1 //1=11.0592 2=22.1148

#if FOC==1 //如果 频率设置=1 编译以下内容
THV=0x??; //高8位
THL=0x??; //低8位
#elif FOC==2 //如果 频率设置=2 编译以下内容
THV=0x??; //高8位
THL=0x??; //低8位
#endif 结束编译

TL0 = THV;
TH0 = TLV;

这样写编译的时候实际上只编译实际值 没有额外运算 而且 也可以实现灵活配置

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表