|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請教 大眾 picc |
| 作者:sun0_liang 欄目:單片機(jī) |
picc: 在hi_tech中我想定義四個位變量ac_ok,bd_ok,weiv24err,weiv5err到status_wei中,用了兩個方法,都不行。 方法一: struct { unsigned ac_ok:1; unsigned bd_ok:1; unsigned weiv24err:1; unsigned weiv5err:1; unsigned :4; }status_wei; 方法二: static volatile bit weiv24err @ (unsigned)&status_wei*8+0;static volatile bit weiv5err @ (unsigned)&status_wei*8+1;static volatile bit ac_ok @ (unsigned)&status_wei*8+2; static volatile bit bd_ok @ (unsigned)&status_wei*8+3; |
| 2樓: | >>參與討論 |
| 作者: sun0_liang 于 2004/1/7 16:31:00 發(fā)布:
另 status_wei已聲明: unsigned CHAR status_wei; |
|
| 3樓: | >>參與討論 |
| 作者: wwllzz 于 2004/1/7 16:34:00 發(fā)布:
如何不行法? 現(xiàn)象呢? |
|
| 4樓: | >>參與討論 |
| 作者: sun0_liang 于 2004/1/7 16:50:00 發(fā)布:
現(xiàn)象 方法一: F:\POWERNEW\TEST\TEST.C: 67(就是該行: }status_wei; ): type redeclared (error) F:\POWERNEW\TEST\TEST.C: 156: undefined identifier: bd_ok (error) F:\POWERNEW\TEST\TEST.C: 492: undefined identifier: ac_ok (error) F:\POWERNEW\TEST\TEST.C: 500: undefined identifier: bd_ok (error) F:\POWERNEW\TEST\TEST.C: 510: undefined identifier: weiv24err (error) F:\POWERNEW\TEST\TEST.C: 511: undefined identifier: weiv5err (error) F:\POWERNEW\TEST\TEST.C: 537: undefined identifier: ac_ok (error) F:\POWERNEW\TEST\TEST.C: 628: undefined identifier: ac_ok (error) F:\POWERNEW\TEST\TEST.C: 629: undefined identifier: bd_ok (error) |
|
| 5樓: | >>參與討論 |
| 作者: sun0_liang 于 2004/1/7 16:53:00 發(fā)布:
現(xiàn)象 方法二:69-72行為 static volatile bit。。。。。定義行。 F:\POWERNEW\TEST\TEST.C: 69: simple integer expression required (error) F:\POWERNEW\TEST\TEST.C: 70: simple integer expression required (error) F:\POWERNEW\TEST\TEST.C: 71: simple integer expression required (error) F:\POWERNEW\TEST\TEST.C: 72: simple integer expression required (error) |
|
| 6樓: | >>參與討論 |
| 作者: 張明峰 于 2004/1/7 17:57:00 發(fā)布:
方法1可以 方法2肯定不行。 方法1時變量status_wei被重復(fù)定義了。 |
|
| 7樓: | >>參與討論 |
| 作者: sun0_liang 于 2004/1/8 8:47:00 發(fā)布:
原因 為何??????? ????????? |
|
| 8樓: | >>參與討論 |
| 作者: 張明峰 于 2004/1/8 8:52:00 發(fā)布:
很簡單 因為你沒有看PICC的使用手冊. |
|
| 9樓: | >>參與討論 |
| 作者: sun0_liang 于 2004/1/8 8:58:00 發(fā)布:
我的理解 在struct中要定義status_wei的地址。 我主要不想聲明status_wei的地址,有何辦法??? ??? |
|
| 10樓: | >>參與討論 |
| 作者: 張明峰 于 2004/1/8 9:00:00 發(fā)布:
不是說了嗎? 就是方法一 |
|
| 11樓: | >>參與討論 |
| 作者: sun0_liang 于 2004/1/8 9:13:00 發(fā)布:
現(xiàn)在的情況 現(xiàn)在改為: bit weiv24err; //24v數(shù)據(jù)信號量 bit weiv5err; //5v數(shù)據(jù)信號量 bit ac_ok; //ac為1正常,0故障 bit bd_ok; //bd為1正常,0故障 struct { unsigned ac_ok:1; unsigned bd_ok:1; unsigned weiv24err:1; unsigned weiv5err:1; unsigned :4; }status_wei @ 0x22; 但是有一句沒被通過: status_wei=0x00; 問題較弱智,實在不好意思。 |
|
| 12樓: | >>參與討論 |
| 作者: sun0_liang 于 2004/1/8 9:24:00 發(fā)布:
張明峰: 請不吝賜教。 謝! |
|
| 13樓: | >>參與討論 |
| 作者: 張明峰 于 2004/1/8 9:28:00 發(fā)布:
是有點(diǎn)弱 不是你弱智,是你C語言的基本功底太弱?矗 union { struct { unsigned ac_ok:1; unsigned bd_ok:1; unsigned weiv24err:1; unsigned weiv5err:1; unsigned :4; }oneBit; unsigned CHAR allBits; }status_wei; 單個位的引用:status_wei.oneBit.ac_ok = 1; 全部位的使用:status_wei.allBits = 0x00; 還有“status_wei @ 0x22”這種定義方式注定失敗,還是沒有好好看PICC的使用手冊。不信你試試? |
|
| 14樓: | >>參與討論 |
| 作者: sun0_liang 于 2004/1/8 10:07:00 發(fā)布:
滔滔江水。。。 太謝謝了。 批評的對!。海 我再試試。 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |