7 Replies Latest reply on Jun 2, 2015 4:43 PM by AlVa_264671

    Port 12 interrupt


      HI !




      I would need use all the pins showed in the attached PDF for interrupt, for detect switch pressed.


      Psoc doesn't let me set interrupt art both separete pins of Port 12


      I cannot set interrupt at pin 12[4] and 12[5] with the pin configuration box  so that I do not get building errors.


      Pins  12_0 12_1 12_2 12_3 have set falling edge interrupt with  the pin configuration box.




      Please refer at tge PDF




      Thank you very much

        • 1. Re: Port 12 interrupt

          I have no problems assigning interrupts to all 8 pins of port 12.


          Consider to post your project. To do so, use
          Creator->File->Create Workspace Bundle (minimal)
          and attach the resulting file.


          • 2. Re: Port 12 interrupt

            I confirm as well, error free build, all P12 set with ISR.







            Regards, Dana.

            • 3. Re: Port 12 interrupt

              Thank you Dana  and Bob


              Dana the issue with Port 12 is in the same bundle I have already sent you for the issue with EEPROM.


              I have only added to pins to Port 12 so that I have  right now 6 key at the keypad.


              Any way I will posted the Bundlle.


              Thank you

              • 4. Re: Port 12 interrupt

                Hi Dana And Bob thank you very much your help.


                What I am trying to do is to use an interrupt for all the Port 12 I/O that are showed in the schematic.


                The six pin cannot be assigned to only one Pin Component, it cannot be set  "continuosly".


                That is why I have configured  the Port 12 pins in two Pin components.


                Regarding the code, it is not including yet the pins 12[4] and 12[5] in  the Switch-Case sentences.


                Any way , as the code does not compile  I didn't finish that part of the code.




                Please let me know how I can use one only ISR component for the  6  I/O set as  digital input or any other way to reach the same fuctionality


                Everything is working fine with the four Port 12 I/O 12[0],12[1],12[2] and 12[3]. 



                • 5. Re: Port 12 interrupt

                  Thank you guys I 've  fixed the issue with the Port 12.


                  It remain  the question I have asked to Dana about setting lvia and lvid  regarding EEPROM programming.


                  Thank you very much for your help.

                  • 6. Re: Port 12 interrupt

                    Some info on EEPROM and Emulated EEPROM -








                    http://www.cypress.com/?app=forum&id=4749&rID=101511     PSOC 4 EEPROM Emulated Location in Flash










                    Regards, Dana.

                    • 7. Re: Port 12 interrupt

                      Hi Dana !


                      Answering your question, I don't filed the case for RESET_CR1 register, yet  I'll do that.


                      Thank you very much for your links,  I am leraning a lot about EEPROM.


                      With that material, I think I wiil find the aswer to the question: why I cannot  program the register RESET_CR1`


                      I repeat again, the code you saw in the bundle that I have sent you guys, the EEPROM get prorammed  and  I can read from the EEPROM.


                      Just in case you did not recive the code,  here is it.




                      #include "Int_for_Eeprom.h "

                      #define  SET_b0_b1_INTERRUPT_CR1REG    0X03
                      #define  CLR_b7_b6_INTERRUPT_CR3REG    0X3F

                      void Int_Eeprom( void) {

                      Estasblish "interrupt and not Rset " for lvia and lvid circuit detector because the nececity
                      to prevent failure when  EEPROM is been writing. Look at ( Architecture_TRM manual- Low-Voltage Interrupt)


                      uint8 A,B;


                      //Set bits b0 and b1 on RESET_CR1 register

                      // Clear bits b7, b6 on RESET_CR3 register                                                              

                      CY_SET_REG8( CYREG_RESET_CR3,  CY_GET_REG8(CYREG_RESET_CR3) &  CLR_b7_b6_INTERRUPT_CR3REG  ) ; 

                      }// End fuction

                      Thank you so much for your help and for learn from you.




                      Alex 101

                      /* [] END OF FILE */