I have develoved a small programe which toggels LED, In this programe i have make a function called delay() which i call more than once in my main programe, as shown void main(){ while(1){ P1 = 0x00; delay(); P1 = 0xFF; delay();} } void delay(){ int i; for(i=0;i<10000;i++);} I compile it and run on simulator it worked as expected but when i programed it and try to run on my hardware it didnt I am using AT89c51 micro from ATMEL BUT if i replace the the function calling by it content every thing works well, like below void main(){ int i; while(1){ P1 = 0x00; for(i=0;i<10000;i++); P1 = 0xFF; for(i=0;i<10000;i++); } } can anybody help
Hello Everybody I figured the problem and resolved it The Hex file generated by compiler was not sequencial i.e 0x0000 is not at the begining same may be the case with other Addreses The programer i was using to burn the chip was not able to programe this type of hex file, i changes the programer and everything worked fine. Thanks for your replies.
The programer i was using ... Which device programmer were you using? Jon
"The Hex file generated by compiler was not sequencial" This is perfectly valid - there is nothing that says Intel Hex files must (or even should) be sequential! "The programer i was using to burn the chip was not able to programe this type of hex file" This is, unfortunately, a common fault of poorly-implemented tools. If they can't get something as basic as this right, you should be wondering what else they've messed up...