这是我的程序:
#include <stdio.h>
#define uart0 0x860
#define uart1 0x880
void send_char( int output )
{
int nothing;
//while write on uart1 is not ready, wait
while(!((*(uart1+8) & 0x0040) && 0x0040)) //+8 eller +2? 2 byte (8 bitar)
{
nothing = 0;
}
*(uart1+4) = output; // +4 eller +1? en byte (4 bitar)
}
int rec_charx(void)
{
if(!((*(uart1+8) & 0x0040) && 0x0040)) //+8 eller +2? 2 byte (8 bitar)
{
return *(uart1) & 0x000f;
}
else
{
return -1;
}
}
编译器抱怨:
'输出'之前的预期')'
为什么?我该如何解决?我不明白投诉。
更新
我们已经重写了程序,但仍然出现编译错误:
#include <stdio.h>
static int* const uart1 = (int*) 0x880;
void send_char( int output )
{
int nothing;
//while write on uart1 is not ready, wait
while(!((uart1[2] & 0x0040) && 0x0040)) //+8 eller +2? 2 byte (8 bitar)
{
//do nothing
nothing = 0;
}
uart1[1] = output; // skriv till uart1
}
int rec_charx(void)
{
if(!((*(uart1+8) & 0x0040) && 0x0040)) //+8 eller +2? 2 byte (8 bitar)
{
return *(uart1) & 0x000f;
}
else
{
return -1;
}
}