简单说是我一个主控芯片接了6-7个TM1640显示芯片。
原来我预定义一个端口 #define CLK_H PORTB |=1<<3; #define CLK_L PORTB &=~(1<<3)
这样我就可以在驱动中用预处理,而外面不管引脚怎么变,只要改下预定义就可以直接用了。
但是现在我突然发现,如果芯片接了6-7个显示芯片,发现这种方法不能用了。
而我不想为每一个芯片都写一个同样的程序,只是引脚变了。
请问,有没有方法实现,一个驱动,在程序中改变不同的IO口吗?
就像上面的CLK_H一样,预处理命令是程序开始的时候处理了一次,而我需要在程序运行过程中改变这个CLK_H的预处理值。
------解决思路----------------------
比如#define clk_H(Px) Px=!Px; //Px
------解决思路----------------------
=1<<3;你这个是操作口了,不是操作端口
使用位置:
clk_H(P23);
另一个位置
clk_H(P32);