|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
麻烦高手帮我分析一下Microblaze的一段小程序! |
作者:kir007 栏目:EDA技术 |
这是一段Microblaze的程序,其功能是对8个LED进行控制,引脚我已经锁定好了; 可是程序下载以后,并没有预料的结果; 我想问的是: 1.XGpio_mSetDataReg(BaseAddress, 1, 0x55); 这个函数中BaseAddress是LED的基地址, 1表示通道,0x55表示写给输出端口的数据; 那么这个通道是怎么确定,我如何知道这个我所约定的那些引脚 正好对准这个通道呢? 2.我下载以后为什么就是没有预料的结果呢? 3.Microblaze应该使用什么复位电平呢? 麻烦各位知情的帮我分析一下!谢谢! void WriteToGPOutput(Xuint32 BaseAddress, int gpio_width) { int i=0; volatile int delay=0; XGpio_mSetDataDirection(BaseAddress, 1, 0x00000000); /* Set as outputs */ while (1) { for(i=0; i<(gpio_width-1); i++) { XGpio_mSetDataReg(BaseAddress, 1, 0x55); for (delay=0; delay<1000000; delay++); } for(i=0; i<(gpio_width-1); i++) { XGpio_mSetDataReg(BaseAddress, 1, 0x55); for (delay=0; delay<1000000; delay++); } } } int main (void) { WriteToGPOutput(XPAR_LEDS_BASEADDR, 8); return 0; } |
2楼: | >>参与讨论 |
作者: picklas 于 2005/9/12 10:36:00 发布:
re 你的程序没有什么大问题,在XPS设计的硬件产生的时候(使用BSB)不是有一个专门的测试GPIO得文件么?用那个试一试把。估计是你的硬件结构不合适,也可能是你的UCF不合适,再就是再使用GPIO之前最好初始化一下。 你可以看一下GPIO得输出PORT有两组,分别对应的是0,1两个通道,建议单向输出时使用gpio_D_out管教(不经过三态)。 microblaze得复位一般是通过reset_block实现的,复位电平可设。 |
3楼: | >>参与讨论 |
作者: goalyoung 于 2005/12/16 18:22:00 发布:
楼上说得在理 本人已经用GPIO跑起来了,设置基本与楼上同 |
|
|
Copyright © 1998-2006 www.tgdrjb.cn 浙ICP证030469号 |