打印

如何将管脚赋给一个变量?

[复制链接]
2379|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dspic30|  楼主 | 2014-8-13 15:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
同一个程序,运行三次,其中有个量date,每次运行都代表了不同的端口P0,P1,P2,这个程序怎么写?
可以先判断后赋值么?例如if a=1; date=P0; else date=P1;(能把端口赋给变量?变量应该是什么类型?)
可以先判断后宏定义么?例如if a=1; #define date P0; else  #define date P1;(#define能用在主函数里么?能跟if语句嵌套么?每次运行都重新宏定义么?)
各位大神请指教!

相关帖子

沙发
dirtwillfly| | 2014-8-16 11:46 | 只看该作者
可以用第一种方法。
如果后面data代表的io不再改变了,可以采用条件编译

使用特权

评论回复
板凳
dspic30|  楼主 | 2014-8-16 15:08 | 只看该作者
dirtwillfly 发表于 2014-8-16 11:46
可以用第一种方法。
如果后面data代表的io不再改变了,可以采用条件编译

我用的DSP28335,可以将某个管脚直接赋给一个变量,然后通过给变量赋值改变引脚的电平高低么?date在后面的运行中还要改变,是个死循环,依次代表三个管脚,不断循环下去,第一种写法可行么?
求大神指点!

使用特权

评论回复
地板
dirtwillfly| | 2014-8-16 17:18 | 只看该作者
dspic30 发表于 2014-8-16 15:08
我用的DSP28335,可以将某个管脚直接赋给一个变量,然后通过给变量赋值改变引脚的电平高低么?date在后面 ...

dsp28335不可以对io直接赋值,具体操作请参看手册。

使用特权

评论回复
5
dspic30|  楼主 | 2014-8-16 19:58 | 只看该作者
dirtwillfly 发表于 2014-8-16 17:18
dsp28335不可以对io直接赋值,具体操作请参看手册。

严格的说不是赋值应该是清零或者置一
#define        BDATA1           GpioDataRegs.GPASET.bit.GPIO24
#define        BDATA0           GpioDataRegs.GPACLEAR.bit.GPIO24
uint16  date1
uint16  date0
void main()
   {
    date1=BDATA1;
    date0=BDATA0;
    date1=1;
    date0=1;
   }
这个程序能完成置一然后置零么?

使用特权

评论回复
6
firstblood| | 2014-8-16 20:15 | 只看该作者
好像不能直接这么些吧,,IO口的数据是需要先读出来的再做数据传递的吧。

使用特权

评论回复
7
dspic30|  楼主 | 2014-8-17 09:28 | 只看该作者
firstblood 发表于 2014-8-16 20:15
好像不能直接这么些吧,,IO口的数据是需要先读出来的再做数据传递的吧。 ...

我也觉得这样不妥,那要怎么操作呢?说说您的看法?

使用特权

评论回复
8
ar_m_cu| | 2014-8-17 09:57 | 只看该作者
指针可以完美解决你的问题

使用特权

评论回复
9
dspic30|  楼主 | 2014-8-17 11:05 | 只看该作者
ar_m_cu 发表于 2014-8-17 09:57
指针可以完美解决你的问题

求详述。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

60

帖子

0

粉丝