音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(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ī)
關(guān)于HI-PICC的疑問(wèn)?
我發(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
續(xù)。
我剛才實(shí)踐的到bcf var,bitno可以如下寫(xiě)法
#define bitclr(var,bitno)  ((var) &= (~(1 <<(bitno))))
經(jīng)過(guò)編譯的得到的匯編為bcf var,bitno.


3樓: >>參與討論
張明峰
自定義的“宏”
=> #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
多謝張大俠指點(diǎn),呵呵,有機(jī)會(huì)在請(qǐng)教.
 
5樓: >>參與討論
TIME?

張大俠那個(gè)time文件能用作延時(shí)嗎?

參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
用過(guò)16F676的看過(guò)來(lái),為什么我的串口會(huì)沒(méi)有輸出。
PIC16C57-RC/P的標(biāo)號(hào)問(wèn)題求教
誰(shuí)是最快的pic
簡(jiǎn)單的PIC12中的小問(wèn)題,請(qǐng)入內(nèi)
哪里有貼片的cd4067啊?急!!!
免費(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)