新手提问有关寄存器TMOD的问题

2019-07-15 18:17发布

本人是初学者,想问以下请问各位大神,以下是对TMOD寄存器的两种不同的赋值方法,请问效果是一样的么?
第一种:TMOD=0x20;


第二种:
#define TMOD7_CLR  (1<<7)
#define TMOD6_CLR  (1<<6)
#define TMOD5_SET  (1<<5)
#define TMOD4_CLR  (1<<4)
#define TMOD3_CLR  (1<<3)
#define TMOD2_CLR  (1<<2)
#define TMOD1_CLR  (1<<1)
#define TMOD0_SET   1
TMOD=0x00;
TMOD&=~TMOD7_CLR; //GATE=0;
TMOD&=~TMOD6_CLR; //C/T=0;  as timer Not counter
TMOD|=TMOD5_SET;  //M1=1;
TMOD&=~TMOD4_CLR; //M0=0;   Time1 Mode: 10 8bit auto

TMOD&= TMOD3_CLR; //GATE=0;
TMOD&=~TMOD2_CLR; // C/T=0;  as timer
TMOD&=~TMOD1_CLR;         //        M1=0;
TMOD&=~TMOD0_CLR;         //        M0=0;   Time0 Mode : 00  13bit

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
阿信509
1楼-- · 2019-07-15 23:18
效果是一样的,第二种就更清楚了
一生有你llx
2楼-- · 2019-07-16 01:37
其实第二种方法才算正确,第一种方法会改变tmod里的所有位,而第二种方法每句话只改变tmod的某一位

一周热门 更多>