2014-12-13 1 views
-2

Я изучаю, как программировать C. C.CompileErrors in C с использованием файлов заголовков

Я получаю следующие ошибки. Я пытался несколько раз переписать свой код, но я просто не понимаю, что делать в этой ситуации. Помощь очень ценится. Ниже я перечислял ошибки компиляции и все файлы, включенные в проект, и их исходный код. enter image description here main.c

#include "ports.h" 
#include "KeyboardML15.h" 

int main(){ 
    int get_key(void); 
    return 0; 
} 

KeyboardML15.c

int get_key(void){ 

    int msbSet; 


    while(1)(

    msbSet = MSB & Key_Decode_Register: 
    if(msbSet){ 
     return Key_Decode_Register; 
    } 
    } 
    return 0; 
} 

Keyboard.h

int get_key(void); 

ports.h

#define IRQ_VECADR 0x3FF2 
#define IRQ_VEC  *((vecptr) IRQ_VEQ_ADR) 

#define set(x, mask) (x) = (x) | (mask) 
#define clear(x, mask) (x) = (x) & ~(mask) 


typedef unsigned char * port8ptr; 
typedef unsigned short * port16ptr; 
typedef unsigned long *port32ptr; 

unsigned char ML4shadow = 0; 
unsigned char MSB = 128 

#define ML4OUT_ADDRESS 0x400 
#define ML4OUT *((port8ptr) ML4OUT_ADDRESS) 

#define ML4IN_ADDRESS 0x600 
#define ML4IN *((port8ptr) ML4IN_ADDRESS) 

#define Key_Decode_Register_ADDRESS 0x9C0 
#define Key_Decode_Register *((port8ptr) Key_Decode_Register); 



#ifdef SIMULATOR 
    #define DRILLSTATUS_ADDRESS 0x401 
#else 
    #define DRILLSTATUS_ADDRESS 0x600 
#endif 

ответ

1

Кажется типа в ваш код ниже:

msbSet = MSB & Key_Decode_Register: 
while(1)(

Изменить его

msbSet = MSB & Key_Decode_Register; 
while(1){ 
    if(msbSet){ 
     return Key_Decode_Register; 
    } else { 
     //dont you want to return? or else you will end up running in infinite loop 
    } 
+0

Я сделал изменения в коде. Так что msbSet постоянно возобновляется. Предполагалось, что он находится внутри цикла while. Тем не менее, проблема заключается в том, что определенные инструкции в ports.h не могут быть найдены, и теперь я не могу сделать то, что я могу сделать, чтобы сделать его видимым в файлах. – Taiga

+0

Идея состоит в том, что нажата кнопка, и когда это произойдет, ее предполагается показать на дисплее позже. Поэтому бесконечность во время цикла. Мы в основном ожидаем нажатия кнопки и постоянного чтения, пока это не произойдет – Taiga