PIC16F1847.fcd PORTB on change IRQ parameters are wrong
Posted: Thu Jun 23, 2016 7:38 pm
I'm trying to use the PortB on change interrupt and got the following errors when compiling...
So apparently the definitions in the FCD file are incorrect for the PIC16F1847, since the enable bit for the IRQ should have been INTCON.3 not RBIE. And the IRQ Flag bits are actual located at IOCBF not RBIF. This looks like code that came from an earlier PIC series chip.
So here's what I see in the FCD file at this time. Can someone describe how I would modify this to reflect the 1847's needs as pertaining to the PortB interrupt on change?
Thank you,
Michael
Code: Select all
TK-II-OS_V1_6.c(540:23): error: unknown identifier 'RBIE'
TK-II-OS_V1_6.c(540:23): error: invalid operand 'RBIE'
TK-II-OS_V1_6.c(540:18): error: failed to generate expression
TK-II-OS_V1_6.c(540:18): error: invalid operand '<<'
TK-II-OS_V1_6.c(540:12): error: failed to generate expression
TK-II-OS_V1_6.c(578:24): error: unknown identifier 'RBIE'
TK-II-OS_V1_6.c(578:24): error: invalid operand 'RBIE'
TK-II-OS_V1_6.c(578:19): error: failed to generate expression
TK-II-OS_V1_6.c(578:15): error: invalid operand '~(1 << ( RBIE))'
TK-II-OS_V1_6.c(578:12): error: failed to generate expression
TK-II-OS_V1_6.c(6217:26): error: unknown identifier 'RBIF'
TK-II-OS_V1_6.c(6217:26): error: invalid operand 'RBIF'
TK-II-OS_V1_6.c(6217:21): error: failed to generate expression
TK-II-OS_V1_6.c(6217:21): error: invalid operand '<<'
TK-II-OS_V1_6.c(6217:16): error: failed to generate expression
TK-II-OS_V1_6.c(6217:57): error: unknown identifier 'RBIE'
TK-II-OS_V1_6.c(6217:57): error: invalid operand 'RBIE'
TK-II-OS_V1_6.c(6217:52): error: failed to generate expression
TK-II-OS_V1_6.c(6217:52): error: invalid operand '<<'
TK-II-OS_V1_6.c(6217:47): error: failed to generate expression
TK-II-OS_V1_6.c(6217:16): error: invalid operand '& '
TK-II-OS_V1_6.c(6217:47): error: invalid operand '& '
TK-II-OS_V1_6.c(6217:34): error: failed to generate expression
TK-II-OS_V1_6.c success
So here's what I see in the FCD file at this time. Can someone describe how I would modify this to reflect the 1847's needs as pertaining to the PortB interrupt on change?
Code: Select all
[PORTB]
Name="PORT"
FlagReg=
FlagBit=
HandlerCode="#ifndef MX_INTHANDLER_intcon_RBIF\n#define MX_INTHANDLER_intcon_RBIF\nchar mxtmp;\nif (ts_bit(intcon, RBIF) && ts_bit(intcon, RBIE))\n{\n\t#ifdef USE_FLOWCODE_ICD\n\t\textern char ICD_Interrupt_Enable = 1;\n\t#endif\t\n\tFCM_%n();\n\tmxtmp=portb;\n\tcr_bit(intcon, RBIF);\n\t#ifdef USE_FLOWCODE_ICD\n\t\textern char ICD_Interrupt_Enable = 0;\n\t#endif\t\n}\n#else\n#warning "This interrupt has previously been enabled, so the macro <%n> may never get called."\n#endif\n"
UseExplicitHandlerCode=1
UseExplicitEnableCode=1
EnReg=
EnBit=
EnableCode="st_bit(intcon, RBIE);\n"
DisableCode="cr_bit(intcon, RBIE);\n"
OptCnt=0
Michael