DT_INTS-18


    Mar 24, 2008 DT_INTS-18 has been updated to version 3.3 which fixes 2 possible problems.
Please download the latest version ASAP.

Notice: If you have upgraded to PBP Version 2.50, then you Must have the latest DT_INTS-18, version (3.2 or higher). 

DT_INTS-18  is a series of include files that simplify the process of creating interrupt driven programs for PicBasic Pro using PIC18F's.

Once you try this, you WILL never use ON INTERRUPT again.
 


Features:
Assembly language Interrupts
Basic language Interrupts
Both ASM and Basic interrupts in the same program
High and Low Priority interrupts
Service Multiple Interrupt sources
Prioritized execution order
Very easy to use

One of the best things about this system, is that you don't have to remember where all the Enable bits, Priority bits and Interrupt flags are located.

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 table to the right lists the Named Interrupts.


If you've been using the 14-bit version, you should find that everything is pretty much the same.  I've tried to keep everything as compatible as possible.

At the same time, there's also a big difference from the 14-bit version.  With many more interrupt sources, and High/Low priorities, it feels more like running 2 copies of PBP at the same time. Does anybody remember "DoubleDOS".

Please select from the Menu on the left for more information.

Updates for Version 3.2  

Version 3.2 was required for DT_INT-18 due to the release of PBP 2.50. But you do Not need to upgrade PBP to use Version 3.2. It still works with previous versions of PBP too (2.40 and later).

There are so many changes in the new PBP. And every one of them are "totally awesome". But the old DT_INTS-18 just couldn't handle it. LONG variables and better use of  >64K FLASH, just wasn't in the original plan. :)

But, it was worth every second of it, because PBP 2.50 is so cool. And I thank the people at melabs (especially Charles Leo) for giving me advanced warning that I needed to make some changes. Ha, who'd have thunk it. melabs knows about my little DT_INTS. :)

 If you use 18F's with PBP. Then you have to get the upgrade. There is no maybe about it. It's only $25 (Be sure to get the printed manual with it you'll need it), don't go for the $10 upgrade. And make sure you specify 2.50 when ordering. Some resellers may not know 2.50 is the latest.

And since I was modifying DT_INTS-18 anyway, I've scoured through the data sheets and come up with every Interrupt Source I could find. This includes the USB, Ethernet and CAN modules

Keep in mind that these are just the Interrupt Sources that can be used with DT_INTS-18. Currently, there is NO code available to be able to use the Ethernet and CAN module interrupts. That part's up to you.

This list has been expanded for Version 3.2

Available Interrupt Sources   16-bit
 INT_INT  -- INT External, same as INT0_INT
 INT0_INT -- INT0 External Interrupt
 INT1_INT -- INT1 External Interrupt
 INT2_INT -- INT2 External Interrupt
 INT3_INT -- INT3 External Interrupt
 RBC_INT  -- RB Port Change
 TMR0_INT -- TMR0 Overflow
 TMR1_INT -- TMR1 Overflow
 TMR2_INT -- TMR2 to PR2 Match
 TMR3_INT -- TMR3 Overflow
 TMR4_INT -- TMR4 Overflow
 TX_INT   -- USART Transmit
 TX1_INT  -- USART1 Transmit
 TX2_INT  -- USART2 Transmit
 RX_INT   -- USART Receive
 RX1_INT  -- USART1 Receive
 RX2_INT  -- USART2 Receive
 CMP_INT  -- Comparator
 EE_INT   -- EEPROM/FLASH Write Operation
 BUS_INT  -- Bus Collision
 LVD_INT  -- Low Voltage Detect
 HLVD_INT -- High/Low Voltage Detect
 PSP_INT  -- Parallel Slave Port Read/Write
 AD_INT   -- A/D Converter
 SSP_INT  -- Master Synchronous Serial Port
 CCP1_INT -- CCP1 Interrupt
 CCP2_INT -- CCP2 Interrupt
 CCP3_INT -- CCP3 Interrupt
 CCP4_INT -- CCP4 Interrupt
 CCP5_INT -- CCP5 Interrupt
 USB_INT  -- USB Interrupt
 OSC_INT  -- Oscillator Fail

               Added in Version 3.2

 CMP0_INT  -- Comparator 0 - 18F1230/1330
 CMP1_INT  -- Comparator 1
 CMP2_INT  -- Comparator 2
 SPP_INT   -- Streaming Parallel Port
 BUS1_INT  -- Bus 1 Collision
 BUS2_INT  -- Bus 2 Collision
 ECCP1_INT -- ECCP1
 LCD_INT   -- LCD Driver
 PMP_INT   -- Parallel Master Port
 SSP1_INT  -- Synchronous Serial Port 1
 SSP2_INT  -- Synchronous Serial Port 2
 TMR5_INT    -- Timer 5
 PT_INT      -- PWM Time Base
 IC1IF_INT   -- Motion Feedback
 IC2QEIF_INT -- Motion Feedback
 IC3DRIF_INT -- Motion Feedback

USB Module
 USB_INT       -- USB Interrupt (funnel)
 USB_ACTV_INT  -- Bus Activity Detect
 USB_ERR_INT   -- USB Error INT (funnel)
 USB_RST_INT   -- USB Reset
 USB_IDLE_INT  -- Idle Detect
 USB_STALL_INT -- A STALL Handshake
 USB_TRN_INT   -- Transaction Complete
 USB_SOF_INT   -- START-OF-FRAME Token
USB ERROR Flags
 USB_BTO_INT   -- Bus Turnaround Time-out
 USB_BTS_INT   -- Bit Stuff Error
 USB_CRC16_INT -- CRC16 Failure
 USB_CRC5_INT  -- CRC5 Host Error
 USB_DFN8_INT  -- Data Field Size Error
 USB_PID_INT   -- PID Check Failure
Ethernet Module
 ETH_INT       -- Ethernet Int (funnel)
 ETH_DMA_INT   -- DMA Interrupt
 ETH_LINK_INT  -- Link Status Change
 ETH_PKT_INT   -- Receive Packet Pending
 ETH_RXER_INT  -- Receive Error
 ETH_TXER_INT  -- Transmit Error
 ETH_TX_INT    -- Transmit
CAN Module
 CAN_ERR_INT    -- CAN bus Error
 CAN_IRX_INT    -- Invalid Received Message
 CAN_RXB0_INT   -- Receive Buffer 0
 CAN_FIFOWM_INT -- FIFO Watermark
 CAN_RXB1_INT   -- Receive Buffer 1 
 CAN_RXBn_INT   -- Any Receive Buffer
 CAN_TXB0_INT   -- Transmit Buffer 0
 CAN_TXB1_INT   -- Transmit Buffer 1
 CAN_TXB2_INT   -- Transmit Buffer 2
 CAN_TXBn_INT   -- Any Transmit Buffer
 CAN_WAKE_INT   -- CAN bus Activity Wake-up