For one, there's an order to place the DT includes in your program.
And it would REALLY help to see your complete code.
For one, there's an order to place the DT includes in your program.
And it would REALLY help to see your complete code.
My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.
Not as dumb as yesterday, but stupider than tomorrow!
Hello Demon.
here is the code. It does not show any errors for the main code but the DT interrupts when assembled gives the error code listed above.
and this is the Interrupt code from DT's Interrupts.Code:CLEAR 'Clears memoryinclude "codesize.pbp" 'measure the size of the code. Define Measure 1 '..... If any of these next three lines cause an error '......Comment them out to fix the problem... '......which variables are needed, depends on the chip you are using....... wsave1 var byte $A0 system ;location for W if in bank0 wsave2 var byte $120 system ;location for W if in bank0 wsave3 var byte $1A0 system ;location for W if in bank0 INCLUDE "DT_INTS-18-k80.bas"; Basic Interrupt System INCLUDE "ReEnterPBP-18.bas" ; Include if using PBP interrupts 'INCLUDE "ReEnterPBP-18LP.bas" ; Include if using Low Priority. PBP INTS INCLUDE "modedefs.bas" 'defines modes for serial in and out INCLUDE "ProfileGen3.pbp" 'Motion profile generator for motor move INCLUDE "incPIDv1_5.pbp" 'include the PID controller INCLUDE "CANBus.pbp" 'CAN bus header file ' Define clock speed DEFINE OSC 20 ' clock frequency DEFINE USE_HIGHPRIORITY 1 ' use high priority interrupts 'define USE_LOWPRIORITY 1 ' not using low priority interrupts DEFINE WRITE_INT 1 '********************************************************************* ' have to define this so interrupts are masked when doing EEPROM ' writes. It handles masking and un-masking '********************************************************************* INTCON2.6 = 0 ' Int on falling edge ' External Interrupt 0 Edge Select bit ' Set up data direction registers for all the pins. TRISA = 111111 ' Set PORTA RA6 is Osc output to crystal TRISB = 101001 ' Set PORTB TRISC = 010100 ' Set PORTC TRISD = 000011 ' Set PORTD TRISE = 111011 ' Set PORTE only lower 4 bits available ;----[High Priority Interrupts]---------------------------------------- ASM INT_LIST macro ; IntSource, Label, Type, ResetFlag? INT_Handler TMR1_INT, _ClockCount, PBP, yes ;-- Timer Int. INT_Handler INT0_INT, _MoveCmd, PBP, yes ;-- Flap Switch endm INT_CREATE ; Creates High Priority interrupt processor ENDASM
The error is for the INTHAND not being defined but, as you can see it is.Code:'****************************************************************'* Name : DT_INTS-18-K80.bas * '* Author : Darrel Taylor modified for PIC18F46K80 * '* Notice : Copyright (c) 2003 * '* Version : 1.0 MAR 21, 2022 * '* Date : MAR 21, 2022 * '**************************************************************** '* Versions: * '* 1.0 : MAR 21, 2022 first version modified for PIC66K80 * '* 3.3 : MAR 24, 2008 * '* Corrects an initialization problem affecting the * '* first pass if CLEAR is not used * '* 3.2 : Aug 26, 2007 * '* Update for PBP 2.50 using LONG's with PBPL * '* Added many new INT sources * '* 3.1 : JUL 18, 2006 * '* Modified to handle smaller BANKA in the newer chips* '**************************************************************** ;DISABLE DEBUG DEFINE INTHAND INT_ENTRY_H ' Context saving for High Priority Ints DEFINE INTLHAND INT_ENTRY_L ' Context saving for Low Priority Ints wsave var byte BANKA SYSTEM ' location for WREG ssave var byte BANK0 SYSTEM ' location for STATUS register bsave var byte BANK0 SYSTEM ' location for BSR register psaveUH VAR BYTE BANK0 SYSTEM ' PCLATU Hi Pri. psaveUL VAR BYTE BANK0 SYSTEM ' Lo Pri. psaveH VAR BYTE BANK0 SYSTEM ' PCLATH Hi Pri. psaveL VAR BYTE BANK0 SYSTEM ' Lo Pri. fsave0H var WORD BANK0 SYSTEM ' locations for FSR registers fsave1H var WORD BANK0 SYSTEM fsave2H var WORD BANK0 SYSTEM fsave0L var WORD BANK0 SYSTEM ' low priority FSR locations fsave1L var WORD BANK0 SYSTEM fsave2L var WORD BANK0 SYSTEM RetAddrH VAR BYTE[3] BANKA SYSTEM ' 21-bit return address Hi Pri. RetAddrL VAR BYTE[3] BANKA SYSTEM ' Lo Pri. INT_Flags VAR BYTE BANKA SYSTEM Serviced_H VAR INT_Flags.0 Serviced_L VAR INT_Flags.1 InHPint VAR INT_Flags.2 NoPriority VAR INT_Flags.3 INT_Flags = 0 goto OVER_DT_INTS_18 ASM ;____ Check for PBPL (PBP ver. 2.50 and above only)__________________________ PBPLongs_Used = 0 if (R1 - R0 == 4) PBPLongs_Used = 1 ; messg PBPL Used = 1 endif ; nolist ;____ DEFINE available interrupt sources_____________________________________
Thanks,
Paul
Posting snippets is just a waste of time...
Ioannis
Thanks for that enlightening comment Ioannis. If I posted all the code it would be about 4000 lines worth of code. The original question had to do with the assembler complaining about the (INT_ENTRY_H) not being defined. The code snippets are because Demon requested them. They show that the (INT_ENTRY_H) is defined in DT's code. So the only question would be if my includes meet the requirements that Demon was speaking about.
Thanks,
Paul
My first guess is that you have a missing file that it is supposed to be in the same directory as the pbp file.
My second guess is that that PIC doesn't support the Darrel high priority interrupts. I have used a few new chips that don't like the Darrel interrupts. I would try your code with a 18F4550 first to see if it works, and go from there.
"No one is completely worthless. They can always serve as a bad example."
Anonymous
beginning to look like another stone soup exercise
Warning I'm not a teacher
Hello,
This "DT_INTS-18-k80.bas" and the matching re-enter file, did you download them from somewhere or are you trying to customize the default ones yourself?
I don't have those files and a simple search did not find them so I can't test much here except compiling a bare bones example with the standard DT-Ints-18 files and, needless to say, it compiles and assembles without errors.If you try the above with the stock DT-Ints files, does it compile? If you try with your K80-version of the DT-Ints files, does it compile?Code:CLEAR 'Clears memoryinclude "codesize.pbp" . Define Measure 1 wsave1 var byte $A0 system ;location for W if in bank0 wsave2 var byte $120 system ;location for W if in bank0 wsave3 var byte $1A0 system ;location for W if in bank0 INCLUDE "DT_INTS-18.bas" ; Basic Interrupt System INCLUDE "ReEnterPBP-18.bas" ; Include if using PBP interrupts DEFINE OSC 20 ' clock frequency DEFINE USE_HIGHPRIORITY 1 ' use high priority interrupts 'define USE_LOWPRIORITY 1 ' not using low priority interrupts DEFINE WRITE_INT 1 INTCON2.6 = 0 ' Int on falling edge ' Set up data direction registers for all the pins. TRISA = %00111111 ' Set PORTA RA6 is Osc output to crystal TRISB = %00101001 ' Set PORTB TRISC = %00010100 ' Set PORTC TRISD = %00000011 ' Set PORTD TRISE = %00111011 ' Set PORTE only lower 4 bits available ';----[High Priority Interrupts]---------------------------------------- ASM INT_LIST macro ; IntSource, Label, Type, ResetFlag? INT_Handler TMR1_INT, _ClockCount, PBP, yes ;-- Timer Int. INT_Handler INT0_INT, _MoveCmd, PBP, yes ;-- Flap Switch endm INT_CREATE ; Creates High Priority interrupt processor ENDASM Main: GOTO Main '------------------------------------------------------------------------------------------------- ' Interrupt service routine '------------------------------------------------------------------------------------------------- ClockCount: LATA.0 = !LATA.0 @ INT_RETURN MoveCmd: LATB.0 = !LATB.0 @ INT_RETURN
/Henrik.
Well, we are here to help on specific problems, not guessing what you might have wrong in your listing. If it is 4k long line let it be.
There are many kind people here that will have a second look at your code and surely might find that comma or dot it should or shouldn't be there for you.
If you like guessing work then be it...
Ioannis
Hello Ioannis,
I have worked with Henrik in the past and he has been most helpful. I'll look again at what he has suggested. If I find the solution, I'll post an answer. If not, well I'll have to see what I can find. I don't mean to raise your ire with my problem.
Paul
There is no ire...
Only that it is extremely difficult to guess what you might have wrong. Posting the listing and the in some cases the wiring to your PIC, power supply etc greatly helps nailing the problem.
Most do not like guessing, me included.
I do understand that you may have code not willing to show for any reason. But on the other hand how can one help if has no clue?
Ioannis
Bookmarks