Hi Vasile,
I've tried to understand page 103, but I shouldn't have. Anyway, an 
adjustment to my PCB and we happily continue. (to bed on time tonight)
Thanks for all your responses
Hans

Op zondag 25 september 2022 om 10:43:11 UTC+2 schreef vasile:

> I guess nothing can be done. This pic (if I don't miss anything) has three 
> interrupts on B0, B1 and B2. I don't see any PPS module. BTW I thought 
> seniors are starting at 3am and sleep at midnight...
>
> On Sun 25 Sep 2022, 10:27 AM hans <[email protected] wrote:
>
>> Hi Vasile,
>> I had pull down on the input, set the pin 5,6 and 7 to output etc....
>> At Mid night I have changed the input from B4 to B0 and now it works 
>> perfect. So what to do if i want to use B4 ??
>> regards
>> Hans
>>
>> Op zondag 25 september 2022 om 08:08:08 UTC+2 schreef vasile:
>>
>>> Hi Hans,
>>> This the way INT1 worked for me on PIC18F26J50, I think your PIC is more 
>>> or less the same, however each PIC has its own stupidity, so it might not 
>>> work as expected...
>>>
>>> You might want to set the pull-up resistor on your INT pin ( or not, as 
>>> your schematic requires).
>>> If you are not using dedicated INT pin and your PIC micro has the stupid 
>>> PPS relocation, it will be additional headache, so check all of these...
>>> good luck!
>>>
>>> -- -------interrupt of change 
>>> IOC-------------------------------------------------------
>>> var bit MY_flag = low
>>> procedure IOC() is
>>>      pragma interrupt
>>>      if INTCON3_INT1IF then
>>>         MY_flag = high
>>>         INTCON3_INT1IF = low
>>>      end if
>>> end procedure
>>>
>>> RCON_IPEN = low ; low priority interrupt, PIC16 compatibility
>>> INTCON_GIE = high   ; enable global interrupts
>>> INTCON_PEIE_GIEL = high  ; enable pheripheral interrupts
>>> INTCON3_INT1IE = high    ; enable INT1 on pin_RB5
>>> INTCON2_INTEDG1 = high   ; enable interrupt on rising edge
>>>
>>>
>>> forever loop
>>> -- use MY_flag for whatever
>>> -- reset MY_flag
>>> end loop
>>>
>>>
>>> On Sat, Sep 24, 2022 at 9:33 PM hans <[email protected]> wrote:
>>>
>>>> Hi Rob,
>>>> I did with the attached file in another pcd-set with no other things. 
>>>> The led wichh gives the pulses show a regular (1 sec) blink but the output 
>>>> from the interrupt goes on and something off.
>>>> Hans
>>>>
>>>> Op zaterdag 24 september 2022 om 20:04:23 UTC+2 schreef 
>>>> [email protected]:
>>>>
>>>>> Hi Hans,
>>>>>
>>>>> I see that this PIC has interrupts with prioirities.
>>>>>
>>>>> Since you only use interrupt 0 as a regular interrupt can you change 
>>>>> this (make FALSE instead of TRUE):
>>>>>
>>>>> INTCON_PEIE = FALSE 
>>>>>
>>>>> If I look in the schematic diagram of the datahseet, setting this to 
>>>>> TRUE enables the other priority interrupt vector but it does not have any 
>>>>> effect on INT0. 
>>>>>
>>>>> Not sure if it helps but you can give it a try.
>>>>>
>>>>> Kind regards,
>>>>>
>>>>> Rob
>>>>>
>>>>> ------------------------------
>>>>> *Van:* [email protected] <[email protected]> namens hans <
>>>>> [email protected]>
>>>>> *Verzonden:* zaterdag 24 september 2022 19:19
>>>>>
>>>>> *Aan:* jallib <[email protected]>
>>>>> *Onderwerp:* Re: [jallib] Re: 18F4520 interrupt
>>>>>  
>>>>> My last try. Loaded in another set. On the output from A 1 shows a led 
>>>>> a steady on/off. So also at the entrance of B4. The led on A0 flashes 
>>>>> very 
>>>>> fast but there is no connection with the input
>>>>>
>>>>> Op zaterdag 24 september 2022 om 10:39:51 UTC+2 schreef hans:
>>>>>
>>>>> Hi Rob, 
>>>>> I did already but no result. A led in the interrupt and one on the 
>>>>> pinB4. The last one shows the action but the led inside teh pragme not.
>>>>>  I have now made an procedure which i am calling on several places in 
>>>>> my program and it worked.
>>>>> procedure DTMF_receive is
>>>>>            if portD_low != DTMF_old then
>>>>>              DTMF = portD_low
>>>>>            end if
>>>>>  end procedure
>>>>>
>>>>> Op zaterdag 24 september 2022 om 09:45:51 UTC+2 schreef 
>>>>> [email protected]:
>>>>>
>>>>> Hi Hans,
>>>>>
>>>>> The code looks OK. Maybe as a test you can activate a LED in the 
>>>>> interrupt routine to check if it gets there.
>>>>>
>>>>> What exactly the behaviour?
>>>>>
>>>>> Kind regards,
>>>>>
>>>>> Rob
>>>>>
>>>>> ------------------------------
>>>>> *Van:* [email protected] <[email protected]> namens hans <
>>>>> [email protected]>
>>>>> *Verzonden:* zaterdag 24 september 2022 08:33
>>>>> *Aan:* jallib <[email protected]>
>>>>> *Onderwerp:* Re: [jallib] Re: 18F4520 interrupt 
>>>>>  
>>>>> I have changed the program part as follows from the example port B0 , 
>>>>> compiling is ok but no result 
>>>>>
>>>>> -- alias the interrupt flags so they are readable.
>>>>> alias INT_0_ENABLE_BIT is INTCON_INT0IE
>>>>> alias INT_0_FLAG_BIT is INTCON_INT0IF
>>>>> alias INT_0_EDGE_BIT is INTCON2_INTEDG0
>>>>>
>>>>> -- enable global interrupts
>>>>> INTCON_GIE  = TRUE        -- Enables all unmasked interrupts
>>>>> INTCON_PEIE = TRUE        -- Enables all unmasked peripheral interrupts
>>>>>
>>>>> -- define your interrupt pin
>>>>> alias interrupt_pin is pin_B4
>>>>> alias interrupt_pin_direction is pin_B4_direction
>>>>> interrupt_pin_direction = INPUT -- interrupt pin is input
>>>>> INT_0_ENABLE_BIT = TRUE   -- interrupt pin enable bit for B0
>>>>> procedure int_on_change_b0() -- procedure is written later
>>>>>
>>>>> -- main interrupt handler
>>>>> procedure interrupt() is
>>>>>    pragma interrupt
>>>>>    -- Check if interrupt pin 0 (B0) has an interrupt.
>>>>>    if INT_0_FLAG_BIT then
>>>>>       DTMF = portD_low
>>>>>       INT_0_FLAG_BIT = FALSE -- reset interrupt flag
>>>>>    end if
>>>>> end procedure
>>>>>
>>>>> a led on the interrupt pin B4 shows the short blink as soon as a dtmf 
>>>>> tone is received. The received value remains on portD-low untill the next 
>>>>> tone. So i can read it afterwards. My idea was to wait some time before 
>>>>> reading the port.
>>>>>
>>>>> Op zaterdag 24 september 2022 om 08:08:47 UTC+2 schreef hans:
>>>>>
>>>>> Here is how i have started and having no reslut i did the (wrong??) 
>>>>> chnages 
>>>>>
>>>>> -- choose pins to use for int on change
>>>>> const byte int_on_change_pins[] = {"B",4}
>>>>> include interrupt_on_change
>>>>> int_on_change_init()
>>>>>
>>>>> -- interrupt for pin B4
>>>>> procedure int_on_change_callback_0() is
>>>>>   pragma inline
>>>>>    DTMF = portD_low
>>>>> end procedure
>>>>>
>>>>> Op zaterdag 24 september 2022 om 08:07:18 UTC+2 schreef hans:
>>>>>
>>>>> Hello,
>>>>> I tried to use the example in the ample sequence 18F4620 Interrupt on 
>>>>> change for the 18F4520. It does not work. What's going on?
>>>>> regards
>>>>> Hans
>>>>>
>>>>> Op zaterdag 24 september 2022 om 07:42:24 UTC+2 schreef 
>>>>> [email protected]:
>>>>>
>>>>> Hi Vasile, he is using the interrupt on change library. It has "pragma 
>>>>> interrupt" and needs the strange line "const byte int_on_change_pins[] = 
>>>>> {"B",4}". 
>>>>>
>>>>> I agree about the delay, but that depends on the use as you pointed 
>>>>> out. It may be ok for the code that is there now, but another way would 
>>>>> be 
>>>>> to start a timer then when the timer is up use the timer interrupt to 
>>>>> read 
>>>>> portD_low.
>>>>>
>>>>> There is also sample 18f4620_interrupt_on_change_pin_b0.jal that shows 
>>>>> the use of interrupt on change without using the library.
>>>>>
>>>>> Matt.
>>>>>
>>>>> On Saturday, September 24, 2022 at 1:21:09 AM UTC-4 vasile wrote:
>>>>>
>>>>> Hans,
>>>>> I do not see any "pragma interrupt",  it's that OK?
>>>>> An interrupt procedure needs it no matter the name it has, without it 
>>>>> there would be no jump to the ISR interrupt vector.
>>>>>
>>>>> This line looks strange to me here (but I'm not a master of 
>>>>> programming):
>>>>> const byte int_on_change_pins[] = {"B",4} 
>>>>>
>>>>> BTW, you do not want to use a software delay in an ISR routine, an ISR 
>>>>> must be fast by definition because it consumes a period of time which is 
>>>>> lost in the main loop. Exceptions for hardware resources of which 
>>>>> programming time do not interfere too much with the main loop. Check if 
>>>>> your pic has registers to detect which edge is used on interrupt on 
>>>>> change. 
>>>>> If yes you should program those too.
>>>>>
>>>>> I hope these would be helpful. In my opinion you should solve the 
>>>>> problem by yourself, is the only way you can understand.
>>>>>
>>>>>
>>>>> On Sat, Sep 24, 2022 at 8:03 AM Matthew Schinkel <
>>>>> [email protected]> wrote:
>>>>>
>>>>> Hi Hans, without me testing or knowing the DTMF module your using. I 
>>>>> think it looks ok. It should be easy to test. 
>>>>>
>>>>> Just to make your code easier to read I would alias the pins and 
>>>>> directions to useful names. You read code 10 times more than you write 
>>>>> it. 
>>>>> I don't know what pin_C3 is for, and pin_C3_direction isn't being set.
>>>>>
>>>>> Looks like your code will wait for an interrupt on pin_B4 then read 
>>>>> the lower 4 bits of portd
>>>>>
>>>>> If the original sample works for you, you can add a sample 
>>>>> for 18F4520. The library may need to be modified to support more chips.
>>>>>
>>>>> Matt.
>>>>>
>>>>> On Friday, September 23, 2022 at 12:44:59 PM UTC-4 hans wrote:
>>>>>
>>>>> The basic file: 
>>>>>
>>>>>   include 18f4520                     -- target PICmicro
>>>>> --
>>>>> -- This program uses the internal oscillator at 4 MHz.
>>>>> pragma target clock    4_000_000       -- oscillator frequency
>>>>> --
>>>>> pragma target OSC      INTOSC_NOCLKOUT           -- internal oscillator
>>>>> pragma target WDT      CONTROL                   -- watchdog
>>>>> pragma target XINST    DISABLED                  -- do not use 
>>>>> extended instructionset
>>>>> pragma target DEBUG    DISABLED                  -- no debugging
>>>>> pragma target BROWNOUT DISABLED                  -- no brownout reset
>>>>> pragma target FCMEN    DISABLED                  -- no clock monitoring
>>>>> pragma target IESO     DISABLED                  -- no int/ext osc 
>>>>> switching
>>>>> pragma target LVP      DISABLED                   -- low voltage 
>>>>> programming
>>>>> pragma target MCLR     EXTERNAL                  -- external reset
>>>>> --
>>>>> -- The configuration bit settings above are only a selection, 
>>>>> sufficient
>>>>> -- for this program. Other programs may need more or different 
>>>>> settings.
>>>>> --
>>>>> WDTCON_SWDTEN = OFF                 -- disable WDT
>>>>> OSCCON_SCS = 0                      -- select primary oscillator
>>>>> OSCCON_IRCF = 0b110                 -- 4 MHz
>>>>> OSCTUNE_PLLEN = FALSE               -- no PLL
>>>>> --
>>>>> enable_digital_io()                 -- make all pins digital I/O
>>>>> --
>>>>>
>>>>> -- DTMF programma
>>>>> pin_D0_direction       = input
>>>>> pin_D1_direction       = input
>>>>> pin_D2_direction       = input
>>>>> pin_D3_direction       = input
>>>>> pin_B4_direction       = input -- for interrupt
>>>>>
>>>>>
>>>>> var byte DTMF
>>>>>
>>>>>
>>>>> -- choose pins to use for int on change
>>>>> const byte int_on_change_pins[] = {"B",4}
>>>>> include interrupt_on_change
>>>>> int_on_change_init()
>>>>>
>>>>> -- interrupt for pin B4
>>>>> procedure int_on_change_callback_0() is
>>>>>    pragma inline
>>>>>    pin_C3 = low
>>>>>    delay_1mS(400)
>>>>>    DTMF = portD_low
>>>>>    pin_C3 = high
>>>>> end procedure
>>>>>
>>>>>
>>>>> Op vrijdag 23 september 2022 om 14:59:53 UTC+2 schreef hans:
>>>>>
>>>>> Hello,
>>>>> I am trying to read a DTMF module with an interrupt on a 18F4520.pin 
>>>>> B4. I found something in the examples. Is thissufficient and  correct? 
>>>>> Direct reading of portD_low is working correct.  
>>>>>
>>>>> -- choose pins to use for int on change
>>>>> const byte int_on_change_pins[] = {"B",4}
>>>>> include interrupt_on_change
>>>>> int_on_change_init()
>>>>>
>>>>> -- interrupt for pin B4
>>>>> procedure int_on_change_callback_0() is
>>>>>    pragma inline
>>>>>    delay_1mS(400)
>>>>>    DTMF = portD_low
>>>>> end procedure
>>>>> regards
>>>>> Hans
>>>>>
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "jallib" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/jallib/df18aa34-b7fc-4d5d-bfe5-65e1a4b741d9n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/jallib/df18aa34-b7fc-4d5d-bfe5-65e1a4b741d9n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "jallib" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/jallib/f9987acb-6a37-40e6-8f36-d32046365d44n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/jallib/f9987acb-6a37-40e6-8f36-d32046365d44n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "jallib" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/jallib/45e0a656-9db6-45c6-b583-5ea2a7597bf6n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/jallib/45e0a656-9db6-45c6-b583-5ea2a7597bf6n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "jallib" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>>
>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/jallib/722bfca5-af9b-4839-8857-f8484e827aabn%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/jallib/722bfca5-af9b-4839-8857-f8484e827aabn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "jallib" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jallib/bd0cd083-5a54-44e0-a727-2ec4bbe79547n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/jallib/bd0cd083-5a54-44e0-a727-2ec4bbe79547n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jallib/1a80e651-8371-4c87-ac4c-6a86681d99cdn%40googlegroups.com.

Reply via email to