I developed a two chip system using my ICD-S40 with the 16F877A and a 16F84A on a breadboard. I use a RS232 driven LCD for a monitor and a 4 pushbutton input. The system works just fine under the breadboard conditions.
I modified the 16F877A software and ported it to a 16F648A. I modified the 16F84A software and ported it to a 12C508A. I made all of the requisite changes to pin assignements and to the fuses.
I build a prototype using the target PICs. All has been wrung out and all solder mishaps have been corrected. Unfortunately, the prototype does not work properly. About 70% of the functionality is OK. I have been driven to distraction to find what is wrong.
I know that the 16F877A has 8K available. The 16F648a has 4K available. All 4K is being used! Yes, that includes the fragments. If I try to change a delay like delay_us(50) to delay_us(100) I get an error message saying I am out of memory. If I change the delay_us(50) to delay_us(40), all is OK. So I know I am really tight.
Does anyone have any ideas I can try out? Is there something in the differences between the architectures of the two devices that are not being addressed by the compiler?
I won't post the code as it is 14 pages of C code for the two chips.
I am using the PCW compiler, version 3.190 and the Mach X programmer with the latest driver.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum