Hello, In trying to compile the C code with the C51 compiler [Keil µvision2], I received error c213 "left side of asn-op not an lvalue" - " the address of a changeable object is required at the right side of the assignment operator". But i don't know where is/are problems... Code: #include <Chipcon\srf04\regssrf04.h> #include <Chipcon\srf04\halsrf04.h> #include <Chipcon\srf04\ebsrf04.h> #include <ctype.h> #define TX_entree 0x80 //P0.4 #define RI0 0x98 BYTE idata txBuffer[8]; BYTE idata buffer[8]; int i = 0; int taille_tab; void main () { #ifdef STAND_ALONE CLOCK_INIT(); IO_PORT_INIT(); #endif ebLcdInit(); ebLcdUpdate("Emission test v0.1", NULL); halWait(3000); ebLcdUpdate("Initialisation", NULL); halWait(2000); halUartSetup(UART_BAUDRATE_115200, DEFAULT_MODE); SPI_INIT(SCLK_6_MHZ); POWER_UP_RESET_CCxxx0(); FIRST ERROR UART_RX_ENABLE(); ebLcdUpdate("Reception et stockage des données en cours", NULL); halWait(3000); if(RI0 == 1){ //stockage des données taille_tab = sizeof(buffer); for (i = 1; i < taille_tab; i++) { UART_WAIT_AND_RECEIVE(buffer[i]); SECOND ERROR IF I COMMENT THE FIRST } } ebLcdUpdate("Emission des données en cours", NULL); halWait(2000); SPI_ENABLE(); halRfSendPacket(buffer, sizeof(buffer)); ebLcdUpdate("Fin", NULL); halWait(2000); } Any help or comments appreciated. I'm workin' on the CC2500DK, it's an tranceiver HF and many fonctions has already created by the constructor. Thanks John
Erik, I actually think this sort of thing is justifiable if you comment it up properly. For instance, it can achieve the equivalent of C++'s "inline" functions in C. If you have a "function" to call a bunch of places that's very simple, then just injecting the 9 or 10 actual instructions everywhere gets a bit ugly. Also, if the timing is of some importance, they may be used at places where you don't want the overhead of a function call.