|
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
求助:這段代碼是什么意思? |
作者:珊瑚蟲 欄目:嵌入式系統(tǒng) |
void TOSH_SET_PIN_DIRECTIONS(void ) { * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x1A + 0x20) = 0x00; * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x17 + 0x20) = 0x00; * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x11 + 0x20) = 0x00; * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x02 + 0x20) = 0x02; * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x03 + 0x20) = 0x02; TOSH_MAKE_RED_LED_OUTPUT(); TOSH_MAKE_YELLOW_LED_OUTPUT(); TOSH_MAKE_GREEN_LED_OUTPUT(); TOSH_MAKE_POT_SELECT_OUTPUT(); TOSH_MAKE_POT_POWER_OUTPUT(); TOSH_MAKE_PW7_OUTPUT(); TOSH_MAKE_PW6_OUTPUT(); TOSH_MAKE_PW5_OUTPUT(); TOSH_MAKE_PW4_OUTPUT(); TOSH_MAKE_PW3_OUTPUT(); TOSH_MAKE_PW2_OUTPUT(); TOSH_MAKE_PW1_OUTPUT(); TOSH_MAKE_PW0_OUTPUT(); TOSH_MAKE_RFM_CTL0_OUTPUT(); TOSH_MAKE_RFM_CTL1_OUTPUT(); TOSH_MAKE_RFM_TXD_OUTPUT(); TOSH_SET_POT_POWER_PIN(); TOSH_MAKE_FLASH_SELECT_INPUT(); TOSH_SET_RED_LED_PIN(); TOSH_SET_YELLOW_LED_PIN(); TOSH_SET_GREEN_LED_PIN(); TOSH_MAKE_BOOST_ENABLE_OUTPUT(); TOSH_SET_BOOST_ENABLE_PIN(); TOSH_MAKE_ONE_WIRE_INPUT(); TOSH_SET_ONE_WIRE_PIN(); } 這是nesC編譯器nc產(chǎn)生的中間代碼文件中的一段,它的硬件平臺是ATMEGA103,顯然這是一段設置引腳是輸入還是輸出的代碼,但是前幾句這實在是搞不懂,如 * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x1A + 0x20) = 0x00; 這是怎樣的一段類型轉(zhuǎn)換啊? 最終的類型是什么,volatile unsigned CHAR*? 請達人指點,謝謝啦. |
2樓: | >>參與討論 |
作者: computer00 于 2005/1/12 15:27:00 發(fā)布:
最終類型應該是volatile unsigned CHAR *型。 搞不懂,中間哪兩次轉(zhuǎn)換有什么用? |
3樓: | >>參與討論 |
作者: jxp_sun 于 2005/1/12 15:49:00 發(fā)布:
分解 * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x1A + 0x20) = 0x00; a = (volatile unsigned CHAR *)(0x1A + 0x20) //a = (0x1A + 0x20)存儲單元里的值, 是一個CHAR pointer type, 長度為指針長度. 4 bytes ? 8 bytes? & * 指針所紙的是地址 b = (unsigned int )a ; c = * (volatile unsigned CHAR *)b; right or not? |
|
|
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號 |