GTS Encoder Compilation Error

  1. We take Kevin’s encoder project from his website.
  2. We remove the phase B logic.
  3. We try to compile.
  4. We get an error saying:

\frc_encoder\frc_encoder\encoder.c:130:Error [1205] unknown member 'INT3IP' in '__tag_223'
\frc_encoder\frc_encoder\encoder.c:130:Error [1131] type mismatch in assignment

  1. We find the error is occurring here:

// interrupt 2 is low priority
INTCON2bits.INT3IP = 0;


If we remove the segment of code, the interrupt is always on high priority and messes other things up. We’d be very gracious for any solutions.

Seen it before. There’s what appears to be a typo in one of the system’s .h files, p18f8722.h. It may be in others as well, but I assume it’s this one you’re using. Just do a text search for INT3P and change it to INT3IP.

Don’t forget to read the documentation, specifically step 9 of encoder_readme.txt.

Thank you very much, we did follow the readme, but we must have missed that. Our program now compiles without error. Thanks again.

Hey folks, looking for some help with a problem that has been posted about a few times already. It involves the typo in the p18f8722.h file.

I’ve gone in an edited the typo from INT3P to INT3IP in that .h file and I still receive this error:

Executing: "C:\mcc18\bin\mcc18.exe" -p=18F8722 "gear_tooth.c" -fo="gear_tooth.o" /i"C:\mcc18\h" -D_FRC_BOARD -D_LARGE_CODE -D_DONT_USE_TMR0 -mL -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-

\FrcCode_2007_8722\gear_tooth.c:71:Error [1205] unknown member 'INT3IP' in '__tag_248'
\FrcCode_2007_8722\gear_tooth.c:71:Error [1131] type mismatch in assignment

Another mentor sent me his .h file and I over-wrote mine and it still didn’t compile. I have some knowledge of programming, but details like this elude me. Thanks for any help you can offer.

Did you drop the new 18f8722.h file into the compiler’s “h” directory (i.e., c:\mcc18\h)? If not, the compiler won’t find it and you’ll continue to receive this error.

-Kevin

Yes. And then I edited the .h file and saw that it still had INT3P instead of INT3IP and I changed it manually and saved the file. I restarted MPLAB and recompiled and get that error every time.

You should not have needed to edit the file, you probably recreated the problem when you edited it.

I only edited it after testing it untouched and having it fail. Then I read the 5 or 6 posts about the issue and they all pointed to a very specific typo and to the best of my ability I found the problem and changed INT3P to INT3IP.

Yes, this is a known bug in the provided mcc .h file.

I went through the same exercise and by changing the INT3P to INT3IP in mcc18/h/p18f8722.h it fixed the problem for me.

Is there a local copy of the the include file in your project directory? Try renaming the mcc18/h/p18f8722.h file to h_ and try recompiling. If it doesn’t complain about not being able to find the file, then it is using a copy from somewhere else. Also, make sure the error is the same. I had some code that referenced the field as INT3P and fixing the include file kick the error of not being able to find INT3P – a quick look might mistake this for INT3IP.

Good suggestion for the file rename. I did that, and the compiler couldn’t find the file anymore. Changed it back and get the same compiler error.

Not sure what you mean in your second point. I opend the 8722.h file and searched for all INT3P and changed it to INT3IP but the error persists.