I have just switched to KEIL from SDCC (it just wouldn't do what I needed!). I have a startup loop that allows some sleep time while some outboard sensors warm up. While they are doing this, I'm in a loop, printing "."'s to the uart:
Byte i = 0; //loop counter printf("Calibrating Sensors"); for (i=0; i<10; i++){ toggle_led(1,250); // delay and flash LED printf("."); } printf("Loop Complete \r\n"); calibrate_sensors(); delay(3000); ...
Is there something I could post that would clear up what problem I was having? My ASM skills are extremely limited, so I made an assumption based on what I saw, and moving the uart interrupt routine over to register bank 2 fixed it. I'll be glad to post the .lst files if it helps.
"I'll be glad to post the .lst files if it helps." Yes, I'd be interested. If you're using the LX51 linker you can generate a .cod file which would be even more useful.
You stated that you use timer0 interrupt for your delay. Are you sure, that your program is waiting inside delay() and continues after the interrupt occures?