首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

sfr类型和I/O口解决办法

2012-03-23 
sfr类型和I/O口请教一下,比如说我在程序中声明了一个函数:void forward_rotation(int pules_a_round, sfr

sfr类型和I/O口
请教一下,比如说我在程序中声明了一个函数:
void forward_rotation(int pules_a_round, sfr use_port, int use_cycles, int use_speed);

sfr类型的参数可以直接作为参数传参吗?

为什么我用keil uvsison 4编译的时候,报类似下面这样的错误。
MCUEND.C(8): error C141: syntax error near 'sfr'

另外在程序要使用到三个I/O口,P1,P2,P3

如何选择一个特定的端口,比如P2,让P2 = 0x55 类似这样。例如下面这样的程序可以吗:

C/C++ code
sfr use_port;  //要使用的端口switch(use_port){   case P1: use_port = 0x55;break;   case P2: use_port = 0x55;break;   case P3: use_port = 0x55;break;}

这样直接使用P1 P2 P3 可以吗?

[解决办法]
sfr是声明一个指定的寄存器空间,不存在变量的这种说法

sfr use_port; //要使用的端口

switch(use_port)
{
case P1: use_port = 0x55;break;
case P2: use_port = 0x55;break;
case P3: use_port = 0x55;break;
}

这个结构可以改成:

enum use_port; //要使用的端口

switch(use_port)
{
case P1: P1 = 0x55;break;
case P2: P2 = 0x55;break;
case P3: P3 = 0x55;break;
}

热点排行