12F675 - How to configure the INTCON command to activate the various interrupts?


+ Reply to Thread
Results 1 to 14 of 14
  1. #1
    Join Date
    Feb 2022
    Posts
    51

    Default 12F675 - How to configure the INTCON command to activate the various interrupts?

    Good morning
    As I am new to understanding and using Interrupts, could you explain to me the configuration of the INTCON command for a small PIC12F675?
    The PBP manual gives as an example:
    INTCON = %10010000 ' Enable RB0 interrupt
    But I don't know for which PIC this command is valid (because I imagine it varies depending on the PIC used?).

    Unless I am mistaken, the 6 ports of the PIC12F675 would make it possible to cause interrupts.
    What would then be the commands to activate the various interrupts on GP0,1,2,3,4 and5 ?

    Thanks all.

  2. #2
    Join Date
    May 2013
    Location
    australia
    Posts
    2,389


    Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    But I don't know for which PIC this command is valid (because I imagine it varies depending on the PIC used?)
    intcon is not a command, its a special function register
    while the intcon reg is fairly similar in operation across the pic spectrum you need to always consult the data sheet for your chip
    to ensure correct usage for the type/s of interrupt in question

    the data sheet also has a section on interrupt types and how to configure them
    the data sheet also will spell out how to save and restore mcu context to incorporate in your isr [interrupt service routine]code
    the data sheet also has a section on ioc [int on change] for the gpio on that chip


    What would then be the commands to activate the various interrupts on GP0,1,2,3,4 and5
    there is no pbp command for that you need to set the appropriate registers yourself , properly of course

    trisio,ioc, intcon
    Warning I'm not a teacher

  3. #3
    Join Date
    Feb 2022
    Posts
    51


    Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    Indeed, INTCON is not strictly speaking a "command" but a configuration of the bits of the INTCON register obtained by a "line of code" of the style INTCON = 10010000.

    I obviously consulted the datasheet of the PIC12F675 on the page relating to the INTCON register. (see attached jpg)
    However, I do not see how to configure the six available ports.
    At first, I would already be well advanced for my project if I could define an interrupt on the GP0 port.

    For the others, we will see later with the assistance of the available specialists of this forum whom I already thank in advance.

    Name:  12F675 INTCON Register .jpg
Views: 1643
Size:  157.8 KB
    Name:  12F675 INTCON pin functions.jpg
Views: 1540
Size:  204.2 KB
    Last edited by zorgloub; - 21st April 2023 at 17:34.

  4. #4
    Join Date
    May 2013
    Location
    australia
    Posts
    2,389


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    REGISTER 3-4: IOC: INTERRUPT-ON-CHANGE GPIO REGISTER (ADDRESS: 96h)
    Warning I'm not a teacher

  5. #5
    Join Date
    Feb 2022
    Posts
    51


    Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    Hi,
    In fact, I'm more of a PICAXE user and I transform my "simple" codes with PBP to program small PICs.
    I was trying to use interrupts...
    The subtleties of the PICs are therefore quite nebulous for me and my English is not flexible and subtle enough to understand the mysteries of the data sheets.
    In fact what I wanted to do initially seemed easy to me... but it doesn't seem to be the case

    I just want to vary a variable named MODE from 0 to 3, 0 to 3, ..., when port GP0 (which has a pull-up resistor to Vcc) goes to zero state.

    If someone could help me out with just this little routine, that would be great.
    Thanks in advance.

  6. #6
    Join Date
    May 2013
    Location
    australia
    Posts
    2,389


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    Code:
    '****************************************************************
    '*  Name    : ioc-demo-12f675.BAS                               *
    '*  Author  : richard                                           *
    '*  Notice  : Copyright (c) 2023 caveat emptor                  *
    '*          : All Rights Reserved                               *
    '*  Date    : 22/04/2023                                        *
    '*  Version : 1.0                                               *
    '*  Notes   : 12f675 ioc gpio.0                                 *
    '*          :                                                   *
    '****************************************************************
    #CONFIG
    cfg = _INTRC_OSC_NOCLKOUT
    cfg&= _WDT_ON
    cfg&= _PWRTE_OFF
    cfg&= _MCLRE_ON
    cfg&= _BODEN_ON
    cfg&= _CP_OFF
    cfg&= _CPD_OFF
      __CONFIG cfg
    #ENDCONFIG
    DEFINE INTHAND    poll
    wsave VAR BYTE    $20     SYSTEM      
    ssave VAR BYTE    BANK0   SYSTEM     
    
    
    mode  var byte
    DUMMY VAR BYTE
    
    
    INPT  VAR GPIO.0
    LED   VAR GPIO.1
    
    
    cmcon = 7
    ANSEL = 0
    TRISIO.0 = 1
    TRISIO.1 = 0
    IOC.0 = 1
    
    
    
    
    MODE = 3      
    DUMMY = GPIO
    INTCON = 001000
    LED = 1
    
    
    MAIN:
        IF  ! MODE THEN
            LED = 0
            pause 1000
            LED = 1
            mode = 3
            DUMMY = GPIO
            INTCON = 001000
        endif 
        PAUSE 10
    GOTO MAIN
    
    
    
    
    asm
    poll
        MOVWF wsave 
        SWAPF STATUS,W 
        BCF STATUS,RP0 
        MOVWF ssave 
        
        BANKSEL _mode
        clrf _mode    
        
        SWAPF ssave,W
        MOVWF STATUS 
        SWAPF wsave,F 
        SWAPF wsave,W 
    ENDASM

    Name:  zorb.jpg
Views: 1195
Size:  146.1 KB
    Last edited by richard; - 22nd April 2023 at 11:19.
    Warning I'm not a teacher

  7. #7
    Join Date
    May 2013
    Location
    australia
    Posts
    2,389


    Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    wasn't really happy with previous attempt

    these are better one with dt ints one without
    Attached Files Attached Files
    Warning I'm not a teacher

  8. #8
    Join Date
    Feb 2022
    Posts
    51


    Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    Hi, Richard,
    I will carefully read your .txt files.
    But I really only master Basic... not really ASM
    Last edited by zorgloub; - 24th April 2023 at 10:32.

  9. #9
    Join Date
    May 2013
    Location
    australia
    Posts
    2,389


    Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    I will carefully read your .txt files.
    not sure if I have to point out the obvious but
    what sort of file would "ZORB.pbp.txt" if you took the ".txt" off the end ?
    [the pbp forum will not allow a pbp file to be uploaded , you need to mask its type with a .txt extension]


    But I really only master Basic... not really ASM
    such a limited outlook

    good luck employing interrupts in any other way with such limited chips as 12f675
    Warning I'm not a teacher

  10. #10


    Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    " not sure if I have to point out the obvious" but you often have some degrading, demeaning cutting comment to people seeking help. Basically a reflection of yourself......

    please delete this

  11. #11
    Join Date
    May 2013
    Location
    australia
    Posts
    2,389


    Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    I will carefully read your .txt files.
    i read that as either a lack of understanding on how files are uploaded onto the forum or
    a intimation that i have uploaded something weird, unusual or incorrect. i don't know which
    but either way since it was specifically pointed out an explanation was warranted


    not sure if I have to point out the obvious but...
    makes it clearer why the txt extension is there and how to deal with it, just in case an explanation was
    necessary




    but you often have some degrading, demeaning cutting comment to people seeking help. Basically a reflection of yourself......
    really
    Warning I'm not a teacher

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


    Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    To activate a single I/O pin as IOC (Interrupt on Change) you use the "IOC" Register; Register 3.4 in the Data Sheet:
    Code:
    IOC.0 = 1  'Enables IOC on GPIO 0
    If you want to enable IOC interrupts on multiple GPIO pins you can use the IOC Register in binary mode. Assume you want an IOC Interrupt on GPIO pins 0 & 1:
    Code:
    IOC = 000011  'Enables IOC on GPIO 0 & 1
    Then you must enable IOC interrupts using the INTCON Register:
    Code:
    INTCON.3 = 1  'Enables IOC Interrupts
    Next, you need to create an Interrupt Handler (See PBP Manual) so when you get the Interrupt, you can do something with it. In your Interrupt Handler, when you get an IOC interrupt you have to clear the Interrupt Flag:
    Code:
    INTCON.0 = 0  'Clears IOC Interrupt Flag
    If you need more than one GPIO IOC Interrupt (2 or more Port Pins), you will have to Poll which GPIO triggered the IOC Interrupt:
    Code:
    IF GPIO.0 = 1 THEN
      <Interrupt Handler Code for GPIO.0>
    ELSE IF GPIO.1 = 1 THEN
      <Interrupt Handler Code for GPIO.1>
    ENDIF
    The above code assumes that a low-to-high transition triggers your IOC interrupt. You may need to change that depending on your goals.

    <edit> I tried to write "IOC = 000011 'Enables IOC on GPIO 0 & 1" but the forum keeps changing it to "IOC = 000011 'Enables IOC on GPIO 0 & 1"
    Last edited by mpgmike; - 26th April 2023 at 00:51.

  13. #13
    Join Date
    May 2013
    Location
    australia
    Posts
    2,389


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    Next, you need to create an Interrupt Handler (See PBP Manual) so when you get the Interrupt, you can do something with it. In your Interrupt Handler, when you get an IOC interrupt you have to clear the Interrupt Flag:
    not forgetting :-


    A mismatch condition will continue to set flag bit GPIF.
    Reading GPIO will end the mismatch condition and
    allow flag bit GPIF to be cleared.
    Warning I'm not a teacher

  14. #14
    Join Date
    Feb 2022
    Posts
    51


    Did you find this post helpful? Yes | No

    Default Re: 12F675 - How to configure the INTCON command to activate the various interrupts?

    Thank you all.
    I will try to assimilate all these notions.
    Have a good day.

Similar Threads

  1. Basic problem with interrupts and sleep command
    By Davidmarks in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 21st February 2012, 01:21
  2. CONFIGURE & OSCCON & meProg configure
    By SUNFLOWER in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 19th February 2011, 21:25
  3. How to activate ccp3 on portB.5 of 16f777 ?
    By abdullahsavas in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 16th June 2010, 08:17
  4. EEPROM Write command with interrupts??
    By Elnino in forum General
    Replies: 4
    Last Post: - 23rd November 2009, 06:44
  5. intcon?
    By jonas2 in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 23rd September 2009, 11:07

Members who have read this thread : 13

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

Tags for this Thread

Posting Permissions

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