#define BDATA1 GpioDataRegs.GPASET.bit.GPIO24
#define BDATA0 GpioDataRegs.GPACLEAR.bit.GPIO24
#define CDATA1 GpioDataRegs.GPASET.bit.GPIO22
#define CDATA0 GpioDataRegs.GPACLEAR.bit.GPIO22
void main()
{ Uint16 date1,date0;
date1=BDATA1;date0=BDATA0;handle();
date1=BDATA1;date0=BDATA0;handle();}
void handle()
{date1=1;date0=1;}
程序是一些片段,主题思想是第一次子函数是在GPIO24上操作,第二次是在GPIO22上操作,这样写可以么?能将管脚直接赋给变量么?如果不能,怎样改才能实现子函数每次都在不同的管脚上操作呢?请大神赐教。
daniel wang1:
回复 Joey Mao:
对,是这个意思,这样写会更好,但问题的关键不在这里,而在如何将GPIO24传进子函数。您看上面那种写法对么?我个人感觉不靠谱,您有好的写法么?
#define BDATA1 GpioDataRegs.GPASET.bit.GPIO24
#define BDATA0 GpioDataRegs.GPACLEAR.bit.GPIO24
#define CDATA1 GpioDataRegs.GPASET.bit.GPIO22
#define CDATA0 GpioDataRegs.GPACLEAR.bit.GPIO22
void main()
{ Uint16 date1,date0;
date1=BDATA1;date0=BDATA0;handle();
date1=BDATA1;date0=BDATA0;handle();}
void handle()
{date1=1;date0=1;}
程序是一些片段,主题思想是第一次子函数是在GPIO24上操作,第二次是在GPIO22上操作,这样写可以么?能将管脚直接赋给变量么?如果不能,怎样改才能实现子函数每次都在不同的管脚上操作呢?请大神赐教。
daniel wang1:
回复 Joey Mao:
这样的话子函数就得写两个了,要知道在我的原程序中可是有好多个子函数的,这样都得写两遍,如果我再加一个管脚的话,那每个子函数就得写三遍,太麻烦。所以我想直接将管脚通过变量传到我的各个子函数中。
#define BDATA1 GpioDataRegs.GPASET.bit.GPIO24
#define BDATA0 GpioDataRegs.GPACLEAR.bit.GPIO24
#define CDATA1 GpioDataRegs.GPASET.bit.GPIO22
#define CDATA0 GpioDataRegs.GPACLEAR.bit.GPIO22
void main()
{ Uint16 date1,date0;
date1=BDATA1;date0=BDATA0;handle();
date1=BDATA1;date0=BDATA0;handle();}
void handle()
{date1=1;date0=1;}
程序是一些片段,主题思想是第一次子函数是在GPIO24上操作,第二次是在GPIO22上操作,这样写可以么?能将管脚直接赋给变量么?如果不能,怎样改才能实现子函数每次都在不同的管脚上操作呢?请大神赐教。
Joey Mao:
回复 daniel wang1:
如果你的动作是固定的,就可以直接写成一个函数啊,比如:void Set(void){ GpioDataRegs.GPASET.bit.GPIO24 = 1; GpioDataRegs.GPASET.bit.GPIO22 = 1;}
void Clear(void){ GpioDataRegs.GPACLEAR.bit.GPIO24 = 1; GpioDataRegs.GPACLEAR.bit.GPIO22 = 1;}
void SetClear(void){ GpioDataRegs.GPASET.bit.GPIO24 = 1; GpioDataRegs.GPASET.bit.GPIO22 = 1; GpioDataRegs.GPACLEAR.bit.GPIO24 = 1; GpioDataRegs.GPACLEAR.bit.GPIO22 = 1;}
每一个IO口的状态变化一次一条语句是必不可少的
#define BDATA1 GpioDataRegs.GPASET.bit.GPIO24
#define BDATA0 GpioDataRegs.GPACLEAR.bit.GPIO24
#define CDATA1 GpioDataRegs.GPASET.bit.GPIO22
#define CDATA0 GpioDataRegs.GPACLEAR.bit.GPIO22
void main()
{ Uint16 date1,date0;
date1=BDATA1;date0=BDATA0;handle();
date1=BDATA1;date0=BDATA0;handle();}
void handle()
{date1=1;date0=1;}
程序是一些片段,主题思想是第一次子函数是在GPIO24上操作,第二次是在GPIO22上操作,这样写可以么?能将管脚直接赋给变量么?如果不能,怎样改才能实现子函数每次都在不同的管脚上操作呢?请大神赐教。
daniel wang1:
回复 Joey Mao:
这样的话就是同时操作两个管脚了,但我希望的是先操作24,再操作22,依次完成操作,怎么写呢?
#define BDATA1 GpioDataRegs.GPASET.bit.GPIO24
#define BDATA0 GpioDataRegs.GPACLEAR.bit.GPIO24
#define CDATA1 GpioDataRegs.GPASET.bit.GPIO22
#define CDATA0 GpioDataRegs.GPACLEAR.bit.GPIO22
void main()
{ Uint16 date1,date0;
date1=BDATA1;date0=BDATA0;handle();
date1=BDATA1;date0=BDATA0;handle();}
void handle()
{date1=1;date0=1;}
程序是一些片段,主题思想是第一次子函数是在GPIO24上操作,第二次是在GPIO22上操作,这样写可以么?能将管脚直接赋给变量么?如果不能,怎样改才能实现子函数每次都在不同的管脚上操作呢?请大神赐教。
Joey Mao:
回复 daniel wang1:
不算是同时操作,函数中的语句执行是有先后顺序的,只是间隔时间很短,要看你的这个先操作后操作有没有具体的时间间隔要求,时间间隔小有什么影响
#define BDATA1 GpioDataRegs.GPASET.bit.GPIO24
#define BDATA0 GpioDataRegs.GPACLEAR.bit.GPIO24
#define CDATA1 GpioDataRegs.GPASET.bit.GPIO22
#define CDATA0 GpioDataRegs.GPACLEAR.bit.GPIO22
void main()
{ Uint16 date1,date0;
date1=BDATA1;date0=BDATA0;handle();
date1=BDATA1;date0=BDATA0;handle();}
void handle()
{date1=1;date0=1;}
程序是一些片段,主题思想是第一次子函数是在GPIO24上操作,第二次是在GPIO22上操作,这样写可以么?能将管脚直接赋给变量么?如果不能,怎样改才能实现子函数每次都在不同的管脚上操作呢?请大神赐教。
daniel wang1:
回复 Joey Mao:
它实际上是要求先用24将所有子函数跑一遍,再用22跑一遍,两个管脚必须分先后依次完整的跑完所有子程序。
#define BDATA1 GpioDataRegs.GPASET.bit.GPIO24
#define BDATA0 GpioDataRegs.GPACLEAR.bit.GPIO24
#define CDATA1 GpioDataRegs.GPASET.bit.GPIO22
#define CDATA0 GpioDataRegs.GPACLEAR.bit.GPIO22
void main()
{ Uint16 date1,date0;
date1=BDATA1;date0=BDATA0;handle();
date1=BDATA1;date0=BDATA0;handle();}
void handle()
{date1=1;date0=1;}
程序是一些片段,主题思想是第一次子函数是在GPIO24上操作,第二次是在GPIO22上操作,这样写可以么?能将管脚直接赋给变量么?如果不能,怎样改才能实现子函数每次都在不同的管脚上操作呢?请大神赐教。
Joey Mao:
回复 daniel wang1:
有点糊涂了,你的GPIO22和24是输入脚?是想通过IO电平变换来控制功能函数的执行?这样的话就不是我刚写的那些函数那么写了,我那是GPIO作为输出时赋值
#define BDATA1 GpioDataRegs.GPASET.bit.GPIO24
#define BDATA0 GpioDataRegs.GPACLEAR.bit.GPIO24
#define CDATA1 GpioDataRegs.GPASET.bit.GPIO22
#define CDATA0 GpioDataRegs.GPACLEAR.bit.GPIO22
void main()
{ Uint16 date1,date0;
date1=BDATA1;date0=BDATA0;handle();
date1=BDATA1;date0=BDATA0;handle();}
void handle()
{date1=1;date0=1;}
程序是一些片段,主题思想是第一次子函数是在GPIO24上操作,第二次是在GPIO22上操作,这样写可以么?能将管脚直接赋给变量么?如果不能,怎样改才能实现子函数每次都在不同的管脚上操作呢?请大神赐教。
daniel wang1:
回复 Joey Mao:
我是通过两个管脚置一置零分别控制两个测量模块,原程序中不但有通过管脚往模块写时序,还有通过管脚读模块返回来的数据,必须先让模块一执行再让模块二执行,且他们执行的程序都是一样的,但返回的数据不同。