THE BOOK of DT's INTERRUPTS is an organization of interrupt service routines and other works written by Darrel Taylor, RIP. Interrupt routines are arranged per Darrel's original list. Darrel Taylor's Instant Interrupts are an extension of the work of Tim Box whom in October of 2002 wrote INT_CTRL.pbp
Many of the forum members felt this is a long overdue project. As Lester has said, "Since Darrel's passing, people have really understood the value of his contributions." Darrel was born in November 1959 and died at 54 years of age in June 2014 at his home in the foothills outside of Colorado Springs, Colorado, USA. Darrel had been working on a programming project in early morning and collapsed of heart failure a few hours later. THE BOOK of DT's INTERRUPTS will be a valuable resorce and a tribute to Darrel Taylor the "Fanatical Contributor".
1x-Bit Index in the left column of the page will take the viewer to a detailed description and method of use for that routine. Pertinent examples of code or further discussions of the routine can be found in links attached.
This is a series of include files that simplify the process of creating interrupt driven programs for PicBasic Pro.
DT's Interrupts MUST be used with PicBasic Pro and MPASM.
Assembly Language Interrupts Basic Language Interrupts Both ASM and Basic interrupts in the same program Service Multiple Interrupts sources Prioritize execution order Very easy to use
You don't have to remember where Enable bits and Interrupt flags are located!
DT_INTS-14.bas for PIC16fxxxx and PIC12fxxxx 14 bit devises
DT_INTS-18.bas for PIC18f 16 bit devises
Each interrupt "source" is given a unique name that is used to reference it. The system "Looks Up" the correct bit locations for that name. Reducing those RTFM sessions to a minimum. The 1x-Bit Index section in the menu to the left, lists the Named Interrupts.
The Instant Interrupt System Structure.
The Bottom Layer is DT_INTS-14.bas" or "DT_INTS-18.bas. This file contains everything required to use Interrupts at the ASM level. It handles all of the "Context Saving/Restoring", detects which interrupt has been triggered, and calls the appropriate "User Routine".
The next layer up is created from the INT_LIST macro you define in the program. It defines the Interrupt sources to use and the corresponding subroutines that will be called; They can be either simple subroutines, or complete "Modules" in a separate Include file, like the Elapse Timer; Up to 14 separate INT_Handler's can be in the LIST.
The Top Layer is the normal PBP program that runs in the foreground.
The only problem with Interrupts, is that they Interrupt things. Any statement that does it's timing in software will have that timing disturbed by the interrupts. Synchronous commands like LCDOUT, I2C and ShifIn/Out don't care.
These PBP statements will be affected by the use of interrupts.