|
昨天調(diào)程序時(shí),犯了個(gè)錯(cuò)誤!
讓我又意識(shí)到我的基礎(chǔ)太薄弱......
double vol = 0;
vol = code/4096*2.5;
code是個(gè)unsigned int型的變量,范圍在0~4095之間。
當(dāng)時(shí)這么想的:code/4095后再乘以2.5,最終會(huì)是個(gè)double型的值。
后來載程序后,一直顯示vol是0.00,我還以為ADC12又出問題了...
然后,改程序,下載,不行,再改,再下,還是不行...
最后,用IAR的硬件仿真功能,仿真出來,code是有值的,再回過頭,發(fā)現(xiàn),shit。!
后來改了程序:
double vol = 0;
vol = code/4096.0*2.5;
相信你應(yīng)該看出來怎么了:
code/4096,兩個(gè)整型變量相除,實(shí)質(zhì)是取余,而code又是小于4096,所以結(jié)果一直都是0。
這個(gè)錯(cuò)誤絆了我一個(gè)小時(shí)左右...很傷,很傷。
|
|