We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello,
I am using EFM32G280F128 controller. In our project we have 16 Digital Inputs which are connected to PIN PA2 - PA13 and PC4,5,13 and 14 PINs of the controller.
The SCADA communicates with the controller using Modbus protocol and it continuously scans the slave(controller).
I am using USART0 for the communication between controller and the SCADA. I want to implement the DI on interrupt based so that whenever a DI changes, I will store the changed value in the modbus registers. This way I don't have to scan the GPIO continuously.
The priority of the USART0_RX_IRQHandler is 3. As the SCADA is continuously scanning the slave(sending message to controller using modbus read), all the time the flow is in the USART0_RX_IRQHandler.
Can ayone tell me which ISR to use for GPIO so that ISR will be called if there is a change in the DI channel value?
GPIO_EVEN_IRQHandler can be used for a single PIN(as per as I know) which is of higher priority then the USART0. So how to map the 16 PINs to an ISR.
Please let me know.
Thanks in advance.
Regards, Anshuman
Perhaps better asked in an Energy Micro forum, or of their FAE's?
Does the manual suggest this is possible?
Can you not check when polled via modbus request?