|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關(guān)于HI-PICC的疑問(wèn)? |
| 作者:sosomj 欄目:單片機(jī) |
我發(fā)現(xiàn)在一個(gè)偉福的中文說(shuō)明中的關(guān)于位指令中有一點(diǎn)錯(cuò)誤 #define bitset(var,bitno) ((var) |=(1 <<(bitno))) 這句是實(shí)現(xiàn)bsf var,bitno, 經(jīng)過(guò)編譯發(fā)現(xiàn)結(jié)果卻是是這樣的。 可是下面的這句。。。。。。。。。。。。。。。 #define bitclr(var,bitno) ((var) &=(1 <<(bitno))) 上面寫(xiě)的功能是實(shí)現(xiàn)bcf var,bitno 可是結(jié)果卻是不對(duì)的,匯編的結(jié)果是 movlw (1<<bitno) andwf var,1 現(xiàn)在我開(kāi)始接觸PICC不久,我感覺(jué)要想寫(xiě)好中檔PIC mcu的c程序,主要是要對(duì) HI-PICC的編譯的特性有一定的了解,所以我想用過(guò)這個(gè)冬冬的大蝦可不可以在 這里留下一些使用的經(jīng)驗(yàn)和感想。 還有經(jīng)過(guò)一定時(shí)間的應(yīng)用,大蝦是否也有一些比較滿(mǎn)意的類(lèi)似于上面的#define 的冬冬,給大家看看可以嗎? 還有bcf var,bitno 的c語(yǔ)言的有效的寫(xiě)法是什么樣的呢? 還有bittest(var bitno) 說(shuō)明:這個(gè)如果var,bitno=1的話(huà),函數(shù)=1 如果var,bitno=0的話(huà),函數(shù)=0 這個(gè)函數(shù)有沒(méi)有好的寫(xiě)法呢? 請(qǐng)高手賜教。謝謝! * - 本貼最后修改時(shí)間:2003-6-11 17:46:29 修改者:sosomj |
| 2樓: | >>參與討論 |
| 作者: sosomj 于 2003/6/11 17:57:00 發(fā)布:
續(xù)。 我剛才實(shí)踐的到bcf var,bitno可以如下寫(xiě)法 #define bitclr(var,bitno) ((var) &= (~(1 <<(bitno)))) 經(jīng)過(guò)編譯的得到的匯編為bcf var,bitno. |
|
| 3樓: | >>參與討論 |
| 作者: 張明峰 于 2003/6/11 18:01:00 發(fā)布:
自定義的“宏” => #define bitclr(var,bitno) ((var) &=(1 <<(bitno))) 上面寫(xiě)的功能是實(shí)現(xiàn)bcf var,bitno 可是結(jié)果卻是不對(duì)的 上面的寫(xiě)法本身就是錯(cuò)誤的,應(yīng)寫(xiě)成 #define bitclr(var,bitno) ((var) &= ((1 <<(bitno))^0xff) 我不太喜歡用這種方式,我的習(xí)慣 位置1:var |= 0b00010000; //var.bit4 = 1 位清0:var &= 0b11101111; //var.bit4 = 0 => 還有bittest(var bitno) 說(shuō)明:這個(gè)如果var,bitno=1的話(huà),函數(shù)=1 如果var,bitno=0的話(huà),函數(shù)=0 這個(gè)函數(shù)有沒(méi)有好的寫(xiě)法呢? if (var&0b00010000) { //do if var.bit4 == 1 } else { //do if var.bit4 == 0 } 記住,Hitech PICC足夠聰明,所有單個(gè)位的判別或設(shè)定指令都直接用PIC的位指令實(shí)現(xiàn),雖然在C語(yǔ)言里使用"&"/"|"型式。 |
|
| 4樓: | >>參與討論 |
| 作者: sosomj 于 2003/6/12 8:11:00 發(fā)布:
多謝張大俠指點(diǎn),呵呵,有機(jī)會(huì)在請(qǐng)教. |
|
| 5樓: | >>參與討論 |
| 作者: TIME? 于 2010/1/24 16:08:28 發(fā)布:
張大俠那個(gè)time文件能用作延時(shí)嗎? |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |