PICTURE 发表于 2013-4-26 10:41:43

多个状态流程相同,输入输出不同的函数如何整合在一起

有许多个函数它的执行的状态流程是一样的相同的,但是它们执行过程对外部端口的输入输出操作是不同的,
有什么方法可以把这多个函数整合在一起,方便管理,

如:有以下两个函数,它们的状态流程是一样的,只是改变把a,变为b,就可以实现不同的功能。
该如何把它们整合?

void a(void)
{
   unsigned char read_a;
   
   switch(a_State)
   {
      case(a_State_1):
      {
         a_Pin1 = 1;
      }
      case(a_State_2):
      {
         a_Pin2 = 1;
      }
      case(a_State_3):
      {
         read_a = a_Pin3;
      }      
   }
}

void b(void)
{
   unsigned char read_b;
   
   switch(b_State)
   {
      case(b_State_1):
      {
         b_Pin1 = 1;
      }
      case(b_State_2):
      {
         b_Pin2 = 1;
      }
      case(b_State_3):
      {
         read_b = b_Pin3;
      }      
   }
}

mcu_lover 发表于 2013-4-26 11:43:08

用指针传参数进去处理。

PICTURE 发表于 2013-4-26 12:29:42

这种方法都可以,但我想实现的是它在编译时,让编译器先预处理,生成一个实实在在的函数。可供我调用。

lcw_swust 发表于 2013-4-26 13:07:02

带参数宏定义
页: [1]
查看完整版本: 多个状态流程相同,输入输出不同的函数如何整合在一起