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/4eeee08f-c8e4-4a80-8e83-daa7a9429be3n%40googlegroups.com.