微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新手提问有关寄存器TMOD的问题

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

时间:10-02 整理:3721RD 点击:
本人是初学者,想问以下请问各位大神,以下是对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

效果是一样的,第二种就更清楚了

其实第二种方法才算正确,第一种方法会改变tmod里的所有位,而第二种方法每句话只改变tmod的某一位

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top