gpt4 book ai didi

c - 如何从 xmega 读取输入然后将其显示在 super 终端上

转载 作者:行者123 更新时间:2023-11-30 16:56:40 24 4
gpt4 key购买 nike

我正在尝试从 ATxMega128a1 读取输入,然后将其显示在我的 super 终端上。 8 位输入(4 个低位、4 个高位、LSB 和 MSB)。在端口引脚 6 上安装了一个按钮。

我已经编写了代码,但是当我编译它时,出现此错误:

"expected ')' before '*' token"

这是我的代码:

   #define x PORTH
PORTE.DIRCLR = PIN6_bm;
PORTE.PIN6CTRL = PORT_OPC_PULLDOWN_gc;

while(1)
{
char x;

if(!(PORTH_IN&PIN6_bm))
{
// if button pressed
PORTJ_OUTSET = PIN0_bm;
PORTJ_OUTSET = PIN1_bm;
PORTJ_OUTSET = PIN2_bm;
PORTJ_OUTSET = PIN3_bm;
PORTJ_OUTCLR = PIN4_bm;
PORTJ_OUTCLR = PIN5_bm;
PORTJ_OUTCLR = PIN6_bm;
PORTJ_OUTCLR = PIN7_bm;

scanf("%d",&x);
printf("%d\n",x);
}
}

return 0;
}

我做错了什么?而且,我这样做是否符合我的目的?

最佳答案

PORTH 定义为 #define PORTH (*(unsigned char *) 0x102) .

正如 Michael Walz 在他的评论中指出的那样,您最终会遇到将 x 定义为一个事物然后将其声明为变量的问题。

char x; // becomes
char PORTH; //which becomes
char (*(unsigned char *) 0x102);

这不起作用,因为声明中需要变量名。也许,您不需要以两种不同的方式使用 x。

但也许,对你的方法的主要反对意见是使用 scanf() 。要读取 PORTH,只需将其分配给变量,甚至直接打印即可。

char c = PORTH; // copies the value of the inputs pins into variable c.
printf("%d\n", PORTH); // prints the value of the input pins as a number.

如果没有更多代码,很难说出您要做什么,但我希望您能够让它发挥作用。

关于c - 如何从 xmega 读取输入然后将其显示在 super 终端上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39848795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com