單片機編程中此句 PWME |= (1<<0)什麼意思!!
這句話是指將PWME寄存器的最低位(第0bit)置成1,我猜這句話可能是使能PWM0通道。
(1<<x)是指將1左移x位,(1<<0)是將1左移0位即還是1,(1<<5)=0b100000=0x20
另外,單片機中寄存器中給某一bit置上或清零常用下述方式:
由於0|1=1 1|1=1,所以將單片機某一bit置成1只需將該位或1即可。即如果要將寄存器的第x位置成1,則需將該寄存器的第x位或上1,用程序表示出來(以PWME寄存器的第x位舉例)就是PWME = PWME | (1<<x),也可以寫成PWME |= (1<<x)
同樣的道理,如果要將某一bit清零,考慮 0&0=0 1&0=0,只需將某位與0即可。用程序表示(以PWME寄存器的第x位舉例)就是PWME = PWME & (1<<x),也可以寫成PWME &= (1<<x)