|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
求助:这段代码是什么意思? |
作者:珊瑚虫 栏目:嵌入式系统 |
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产生的中间代码文件中的一段,它的硬件平台是ATMEGA103,显然这是一段设置引脚是输入还是输出的代码,但是前几句这实在是搞不懂,如 * (volatile unsigned CHAR *)(unsigned int )& * (volatile unsigned CHAR *)(0x1A + 0x20) = 0x00; 这是怎样的一段类型转换啊? 最终的类型是什么,volatile unsigned CHAR*? 请达人指点,谢谢啦. |
2楼: | >>参与讨论 |
作者: computer00 于 2005/1/12 15:27:00 发布:
最终类型应该是volatile unsigned CHAR *型。 搞不懂,中间哪两次转换有什么用? |
3楼: | >>参与讨论 |
作者: jxp_sun 于 2005/1/12 15:49:00 发布:
分解 * (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? |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |