BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #14443同步于 2014/2/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

求Nios大神指点迷津

CathyFong
2014/2/27镜像同步10 回复
要求:当S1按下led左移一位,S2按下led右移一位,S3按下led以250毫秒的速度左移一圈,S4右移一圈,共8个led灯。 然后就有了这一段程序,但是毫无移动现象,求大神指点迷津 #include <stdio.h> #include <system.h> #include <io.h> #include "altera_avalon_pio_regs.h" #include "sys/alt_irq.h" unsigned char data; unsigned char leed; unsigned int i=0; void ISR_key(void * context,alt_u32 id); int main() { IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_BUTTON_BASE,0xff); IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_BUTTON_BASE,0xff); while( alt_irq_register (PIO_BUTTON_IRQ,NULL,ISR_key)!=0 ); IOWR(LED_PIO_BASE,0,0xfe); while(1) { if(data==0x01) { leed=IORD_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE); IOWR(LED_PIO_BASE,0,leed<<1); data=0xff; } if(data==0x02) { leed=IORD_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE); IOWR(LED_PIO_BASE,0,leed>>1); data=0xff; } if(data==0x04) { leed=IORD_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE); for(i=0;i<8;i++) { IOWR(LED_PIO_BASE,0,leed<<1); usleep(250000); } data=0xff; } if(data==0x08) { leed=IORD_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE); for(i=0;i<8;i++) { IOWR(LED_PIO_BASE,0,leed>>1); usleep (250000); } data=0xff; } } return 0; } void ISR_key(void * context,alt_u32 id) { data=IORD_ALTERA_AVALON_PIO_EDGE_CAP(PIO_BUTTON_BASE); printf("%d\n",data); IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_BUTTON_BASE,0xff); }
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
wangxiaobupt机器人#1 · 2014/2/27
把部分代码先注释一下 试试能不能实现第一个要求 如果第一个要求都实现不了 说明你工程方面有问题 或者硬件 如果实现了第一个再实现第二个呗 【 在 CathyFong (小小方) 的大作中提到: 】 : [size=5]要求:当S1按下led左移一位,S2按下led右移一位,S3按下led以250毫秒的速度左移一圈,S4右移一圈,共8个led灯。 : 然后就有了这一段程序,但是毫无移动现象,求大神指点迷津 : #include <stdio.h> : ...................
UniverseJang机器人#2 · 2014/2/27
http://blog.sina.com.cn/s/blog_bff0927b01014gxc.html 先看看是不是帖子里面的缓存设置问题~如果不是同意ls的做法:先把代码简化,想实现多个功能没成功,就先试试实现最简单的,然后一步步往下走。
CathyFong机器人#3 · 2014/2/27
我选择的是标准型的CPU,应该不存在缓存问题,至于简化代码,已经尝试了四个小时了,小菜鸟解决不了问题啊 【 在 UniverseJang 的大作中提到: 】 : http://blog.sina.com.cn/s/blog_bff0927b01014gxc.html : 先看看是不是帖子里面的缓存设置问题~如果不是同意ls的做法:先把代码简化,想实现多个功能没成功,就先试试实现最简单的,然后一步步往下走。
CathyFong机器人#4 · 2014/2/27
连第一个都实现不了,硬件应该不会有问题,我觉得是我代码的问题,但是没想明白什么问题 【 在 wangxiaobupt 的大作中提到: 】 : 把部分代码先注释一下 试试能不能实现第一个要求 : 如果第一个要求都实现不了 说明你工程方面有问题 或者硬件 : 如果实现了第一个再实现第二个呗 : ...................
UniverseJang机器人#5 · 2014/2/27
【 在 CathyFong 的大作中提到: 】 : 我选择的是标准型的CPU,应该不存在缓存问题,至于简化代码,已经尝试了四个小时了,小菜鸟解决不了问题啊 最简单的也不能实现么?比如说控制某个灯让它固定时间亮灭?
CathyFong机器人#6 · 2014/2/27
这个应该可以,问题应该出在我while(1)死循环里的代码,但是不知道什么问题 【 在 UniverseJang 的大作中提到: 】 : 最简单的也不能实现么?比如说控制某个灯让它固定时间亮灭?
UniverseJang机器人#7 · 2014/2/27
【 在 CathyFong 的大作中提到: 】 : 这个应该可以,问题应该出在我while(1)死循环里的代码,但是不知道什么问题 最后那个是个外部中断函数?data进入whiel(1)后还能去执行中断函数里面的读操作么?好久没调代码了~都忘得差不多了~
CathyFong机器人#8 · 2014/2/27
不可以吗?应该可以吧~我对这个没概念啊 【 在 UniverseJang 的大作中提到: 】 : 最后那个是个外部中断函数?data进入whiel(1)后还能去执行中断函数里面的读操作么?好久没调代码了~都忘得差不多了~
UniverseJang机器人#9 · 2014/2/27
【 在 CathyFong 的大作中提到: 】 : 不可以吗?应该可以吧~我对这个没概念啊 一年多没搞这个了~真心不确定啊~你下面是定义了个中断函数么~外部按键有动作就会触发中断? 还有上面的那个while是中断的初始化?