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.
