把EasyPro51編程器的源代碼修改在SDCC上,編譯運(yùn)行通過(guò)
比如說(shuō)P0.1口的LED.點(diǎn)亮他在Keil中這么寫(xiě)
本文引用地址:http://2s4d.com/article/201611/323425.htmsbit LED=P0^1;
void XXXX(void)
{
LED=1;
LED=0;
while (1){}
}
但是在sdcc中卻通不過(guò)。網(wǎng)上查了下,要用這種方法:
__sbit __at 0x80 LED;
//或者#define LED P0_1
void XXXX(void)
{
LED=1;
LED=0;
while (1){}
}
這才是正確的。
還有在sdcc中的一些細(xì)節(jié)寫(xiě)法,比如說(shuō)
unsigned char Data;
while (!ReadData()==Data){}
這就是有錯(cuò)的。因?yàn)樵?sdcc中,你沒(méi)有把Data定義成signed char .所以他會(huì)報(bào)錯(cuò),說(shuō)這個(gè)不是有符號(hào)位的。
在sdcc的寫(xiě)法是:(ReadData!=Data).
好的。修改后通過(guò)編譯和燒寫(xiě)的E51PRO源代碼在這里:EP5-SDCC-src.tar.bz2
評(píng)論