Customizing the DT_INTS-XX.bas Instant Interrupt


Closed Thread
Results 1 to 14 of 14

Hybrid View

  1. #1
    Join Date
    Apr 2014
    Location
    OK
    Posts
    557


    Did you find this post helpful? Yes | No

    Default Re: Customizing the DT_INTS-XX.bas Instant Interrupt

    Part 2

    Next, Starting on Line 218 (of the original) are the same familiar Flags. *The same process is used here, where the appropriate name & Registers*are used for the MCU you are using. *For example, Lines 218 - 220 reads:

    ifdef INT0IF *;----{ INT0 External Interrupt }----------[INTCON, INT0IF]---
    * * * INT_Source *INTCON,INT0IF, INTCON,INT0IE, -1, -1
    * endif

    We would modify it to read:

    ifdef INT0IF *;----{ INT0 External Interrupt }----------[PIR1, INT0IF]---
    * * * INT_Source *PIR1,INT0IF, PIE1,INT0IE, IPR1,INT0IP
    * endif

    Another quick example, original:

    * ifdef TMR1IF *;----{ TMR1 Overflow Interrupt }------------[PIR1, TMR1IF]---
    * * * INT_Source *PIR1,TMR1IF, PIE1,TMR1IE, IPR1,TMR1IP
    * endif

    Modified for the K42:

    * ifdef TMR1IF *;----{ TMR1 Overflow Interrupt }------------[PIR4, TMR1IF]---
    * * * INT_Source *PIR4,TMR1IF, PIE4,TMR1IE, IPR4,TMR1IP
    * endif

    Hope this helps.

  2. #2
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default Re: Customizing the DT_INTS-XX.bas Instant Interrupt

    Thanks for the contribution !!
    Dave
    Always wear safety glasses while programming.

  3. #3
    Join Date
    Feb 2008
    Location
    Michigan, USA
    Posts
    231


    Did you find this post helpful? Yes | No

    Default Re: Customizing the DT_INTS-XX.bas Instant Interrupt

    mpgmike,
    Thank you for explaining this. I just spent too many days trying to figure out why I wasn't getting an upgraded circuit to work. 16F18326 from 12F683. Was driving me nuts.
    Now let's see if I can do this without messing it up.

    bo

  4. #4
    Join Date
    Mar 2003
    Location
    Commerce Michigan USA
    Posts
    1,166


    Did you find this post helpful? Yes | No

    Default Re: Customizing the DT_INTS-XX.bas Instant Interrupt

    Here is a modified version of DT_INTS_16 I changed to work with 16F18326 processors.
    Attached Files Attached Files
    Dave Purola,
    N8NTA
    EN82fn

  5. #5
    Join Date
    Feb 2008
    Location
    Michigan, USA
    Posts
    231


    Did you find this post helpful? Yes | No

    Default Re: Customizing the DT_INTS-XX.bas Instant Interrupt

    Dave,
    Thanks for sharing that. It behaves differently than the one i did, so I'll have to compare and learn what I missed. Still hasn't corrected my INT on Change (IOC_INT) issue, so I still have something wrong. It's always something....

    bo

  6. #6
    Join Date
    Mar 2003
    Location
    Commerce Michigan USA
    Posts
    1,166


    Did you find this post helpful? Yes | No

    Default Re: Customizing the DT_INTS-XX.bas Instant Interrupt

    Bo, I have NO issue using it with IOC or INT. I would make sure ALL registers are set for using IOC. I have attached the page that tells of all the resisters affected.
    Attached Images Attached Images
    Dave Purola,
    N8NTA
    EN82fn

  7. #7
    Join Date
    Feb 2008
    Location
    Michigan, USA
    Posts
    231


    Did you find this post helpful? Yes | No

    Default Re: Customizing the DT_INTS-XX.bas Instant Interrupt

    Dave,
    Thank you for the help. I have been trying to look through the registers, but obviously missing something.

    Here is the stripped down core of the program. I was under the impression that DT_INTS took care of some of these registers, but manually included them in case I'm missing something.

    The TMR code is working fine, I just can't the IOC to work.


    Code:
    '****************************************************************
    '                       16F18624,25,26
    '                ---------------u-----------------
    '      5v pwr  -1|VDD++                    -- VSS |14-    Gnd     
    '              -2|RA5                 RA0/ICSPDAT |13-        
    '  Gge/Tac Drv -3|RA4                         RA1 |12-        
    '              -4|RA3/MCLR/vpp                RA2 |11-    Neutral > ECM          
    '    Tach IN   -5|RC5                         RC0 |10-    Neut LED        
    '              -6|RC4                         RC1 |9-     VSS Led     
    '        VSS   -7|RC3                         RC2 |8-              
    '                ----------------------------------    
    
    '******************************************************************
    #CONFIG
       __config _CONFIG2, _MCLRE_OFF & _CP_OFF
    #ENDCONFIG
    INCLUDE "DT_INTS-16.bas"  ; v1.10 Modified for 16F18326 IOC_INT
    INCLUDE "ReEnterPBP.pbp"    ; Include for DT_INTS.  ver 3.4
    
    ' alias pins:
    Nout        var PORTA.2  ' Neutral switch output signal  
    TachDrv     var PORTA.4  ' Tach Drive 
    N_LED       VAR PORTC.0  ' LED for Neutral
    VSS_LED     VAR PORTC.1  ' LED for VSS
    VSS         var PORTC.3  ' Vehicle Speed Sensor output signal ON 
    TachIN      var PORTC.5  ' Monitor ECM tachometer signal 
    
    PIE0 =  %00010000        ' Enable interrupts (maybe not needed)
    INTCON = %1100001        ' Global and peripheral INTS enabled, Rising edge
    IOCCP = %00100000        ' Interrupt on change on RC5, tach input
    T0CON0 = %10010000       ' TMR0 Postscale=0, 16 bit
    T0CON1 = %01000000       ' Fosc/4, No Prescale
    T1CON = %00000001        ' TMR1 prescale=2, clock=Fosc/4, TMR1=on 
    T1GCON = 0
    PORTA = %00001000        ' Outputs except 3 for SpeedAdj 
    PORTC = %00100000        ' Outputs except 5 for Tach In input 
    TRISA = %00001000        ' Pins output(except 3 for Speed adj)
    TRISC = %00100000        ' Outputs except 5 for Tach In input
    ANSELA = 0
    ANSELC = 0
    ;----[High Priority Interrupts]----------------------------------------
    ASM
    INT_LIST  macro    ; IntSource,   Label,   Type, ResetFlag?
            INT_Handler   IOC_INT,   _Capture,  PBP,  yes
            INT_Handler   TMR0_INT,  _Timer0,   PBP,  yes
            INT_Handler   TMR1_INT,  _Timer1,   PBP, yes
        endm
        INT_CREATE               ; Creates the High Priority interrupt processor
    ENDASM
    @    INT_ENABLE  IOC_INT     ; enable Capture interrupts
    @    INT_ENABLE  TMR0_INT    ; enable Timer 0 interrupts
    @    INT_ENABLE  TMR1_INT    ; enable Timer 1 interrupts
    ;-----------------------------------------------------------------------
    Main: 
    GOTO Main
    '---[IOC - interrupt handler]------------------------------------------
    Capture:  ' Enter here with Tach Pulse from ECM (IOC)
        toggle VSS_led 
        toggle N_LED
        pulsout tachdrv, 50         ' normal 4 cy tach, 500uS  
    @ INT_RETURN 
    '---[TMR0 - interrupt handler]--  --------------------------------------
    Timer0:                         ' Set Idle flag if timer expires,
       toggle Nout
    @ INT_RETURN
    '---[TMR1 - interrupt handler]----------------------------------------
    Timer1:
        toggle VSS
    @ INT_RETURN
    
    END

Similar Threads

  1. RTCC Interrupt for DT_INTS-18.bas
    By readitaloud in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 29th November 2013, 23:33
  2. Can I use DT_INTS-18.bas and MIBAM.pbp together?
    By tacbanon in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 12th August 2013, 23:20
  3. DT_INTS-14.bas Reset Flag
    By Larryd in forum Serial
    Replies: 2
    Last Post: - 8th April 2013, 23:44
  4. Serial Interrupt with DT_Ints - Error
    By gadelhas in forum mel PIC BASIC Pro
    Replies: 8
    Last Post: - 11th August 2010, 14:26
  5. Problem with DT_INTS-14.bas and PIC16F628A
    By CesarP in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 9th August 2010, 06:31

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts