#include <8051.h>
#define RELAY P1_4
#define K1 P2_7
void main()
{
if (!K1) RELAY = 0;
else RELAY = 1;
}
Albert
W dniu 2013-06-07 12:29:50 użytkownik JIA Pei <[email protected]> napisał:
To whom it may concern:
I kept obtaining the following error message
error 2: Initializer element is not constant
while building the following code using MCU8051IDE, from Compiler
configuration,MCU8051IDEadopts--std-sdcc89 .
1) Code A
#include <reg51.h>
sbit RELAY = P1^4;
sbit K1 = P2^7;
main()
{
if (!K1) RELAY = 0;
else RELAY = 1;
}
Clearly, sdcc89 is not keil C, which is fantastic ! However, it seems if I
modify the above code and change it into
1) Code B
#include <reg51.h>
main()
{
sbit RELAY = P1^4;
sbit K1 = P2^7;
if (!K1) RELAY = 0;
else RELAY = 1;
}
the above code B can be successfully built. However, after I did hex->binand
flash the .bin file into my board, the board doesn't work at all. However, by
buildingcode A and flashing the .hex file usingPZ-ISP under Windows, the board
works fine.
So, is there any suggestions by using sdcc?
How can I make the code both built and work successfully by compiling with sdcc?
Thank you very much.
------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user