Brad Collins

C2801 Error on Variable Declaration

Discussion created by Brad Collins on Apr 11, 2006
Latest reply on Mar 3, 2014 by David Hackenbracht

Below is some Processor Expert-generated code.  I have a CAN bean (MainboardCan) and a PIT bean (MainTimer).  The only change I have made to the code is to add a single int declaration, and the compiler gives me a C2801 error: '}' missing.

/* Including used modules for compiling procedure */#include "Cpu.h"#include "Events.h"#include "MainboardCan.h"#include "MainTimer.h"/* Include shared modules, which are used for whole project */#include "PE_Types.h"#include "PE_Error.h"#include "PE_Const.h"#include "IO_Map.h"void main(void){  /*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/  PE_low_level_init();  /*** End of Processor Expert internal initialization.                    ***/  /* Write your code here */  int yeldarb;  /* <--------- ERROR C2801 ????  */  /*** Don't write any code pass this line, or it will be deleted during code generation. ***/  /*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/  for(;;){}  /*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/

Config:

  • CW5.0 for HC08 with patch 1, build 060222
  • PE v2.97.01 with patches 1 & 2
  • Small memory model
  • Chip: MC68HC08AZ32A

FYI, when I change the type to, say, a byte, the compiler throws a C1815 error, telling me that there's no such typedef as byte.  Now, I can right-click on byte, and the editor will take me straight to its typedef in PE_Types.h.  The compiler, however, can't seem to find it.  Pretty flakey.

Any ideas?

Thanks much for your help.

Outcomes