您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 又遇见了个奇怪的问题,,,,,
本帖共有723个阅读者
发表帖子 发表投票 回复主题
又遇见了个奇怪的问题,,,,,
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
又遇见了个奇怪的问题,,,,,

发现了个问题,PG8和PG9这2个IO,连续对这2个IO操作,

#define step_motor_x_dir (1<<8) //pg8,x轴电机方向
#define step_motor_x_dir_right() (*pPORTGIO_CLEAR|=step_motor_x_dir)
#define step_motor_x_dir_left()  (*pPORTGIO_SET  |=step_motor_x_dir)

#define step_motor_x_pulse (1<<9) //pg9,x轴电机输出脉冲
#define step_motor_x_pulse_off() (*pPORTGIO_CLEAR|=step_motor_x_pulse)
#define step_motor_x_pulse_on()  (*pPORTGIO_SET  |=step_motor_x_pulse)

//下面是BF504FGP8和GP9初始化

//第一个步进电机方向
*pPORTG_MUX   |=1<<9;
*pPORTG_MUX   |=1<<8;
*pPORTG_FER   &=~step_motor_x_dir;
*pPORTGIO_DIR  |= step_motor_x_dir;

step_motor_x_dir_left();

*pPORTG_MUX   |=1<<11;
*pPORTG_MUX   |=1<<10;
*pPORTG_FER   &=~step_motor_x_pulse;
*pPORTGIO_DIR  |= step_motor_x_pulse;

step_motor_x_pulse_off();

//这段放在定时器2中断里面执行....终端时间为1S.........
if(!led_flg)
{
led_off();
step_motor_x_dir_right();
step_motor_x_pulse_on();
led_flg=1;
}
else
{
led_on();
step_motor_x_dir_left();
step_motor_x_pulse_off();
led_flg=0;
}


这样操作,GP8就不会有输出,永远是低电平,

if(!led_flg)
{
led_off();
step_motor_x_dir_left();
step_motor_x_pulse_on();
led_flg=1;
}
else
{
led_on();
step_motor_x_dir_right();
step_motor_x_pulse_off();
led_flg=0;
}
这样操作就OK了..

不知道为啥,连续对GP8,GP9操作,如果2个连续设置为1,则可以正常输出,如果2个IO连续设置为0   1,或1  0,则不可以正常输出......





这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/8/24 15:46:29
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
测量一下这两个IO是否短接了

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2011/8/24 17:39:38
tzg74500(论坛游民)
tzg74500
头衔:社区公民
帮派:无帮无派
帖数:87
金钱:806
积分:110
注册时间:2011/7/31
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
问题已搞定,pPort_set用法有问题,他不能读,只能写,而且写0无效,必须写1。

这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/8/26 7:53:05
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154440 Call, 1 Queries, Processed in 0.015625 second(s),