Hi,
I'm trying to get the edge interrupt working for the RM48L952ZWT on the HDK board.
In order to generate falling edge interrupt, I using S1 switch which is connected to NHET2[6].
Note:I also have the following configured and working fine:
- D5 Led which is blinking using HET1[0] using PWM output, in addition to that,
-i Setup SCI2 to generate interrupt on receive character and this is working fine.
Here are the steps that I'v done:
1- I setuip Edge 0 on Falling Edge for HET2[6]:
2- Then I setup Edge0 Interrupt to be LowLevel
2- Then under PIN0-7 I configured HET2[6]
3- After I setup the PINMUX to activate HET2_6
4- Then under VIM Channel 0-31 I activate Channel 24 HET Low
5- And then I generate the Code in halcogen.
The I added the edgeNotification and hetNotification in sys_main.c
As well as the following at the beginning of the main function
_enable_IRQ();
hetInit();
edgeEnableNotification(hetREG2, edge0);
I attached sys_main.c in order to show the code.
6- The I compile and program the code in the HDK board. I setup breakpoints in edgeNotification() and in hetNotification().
When pressing S1, the code did not reach the breakpoints.
Is I'm missing something
/** @file sys_main.c * @brief Application main file * @date 02-Mar-2016 * @version 04.05.02 * * This file contains an empty main function, * which can be used for the application. */ /* * Copyright (C) 2009-2016 Texas Instruments Incorporated - www.ti.com * * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * * Neither the name of Texas Instruments Incorporated nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ /* USER CODE BEGIN (0) */ #include "het.h" #include "sci.h" /* USER CODE END */ /* Include Files */ #include "sys_common.h" /* USER CODE BEGIN (1) */ static unsigned char rcvBuf; int nbSwInterrupt; /* USER CODE END */ /** @fn void main(void) * @brief Application main function * @note This function is empty by default. * * This function is called after startup. * The user can use this function to implement the application. */ /* USER CODE BEGIN (2) */ /* USER CODE END */ void main(void) { /* USER CODE BEGIN (3) */ unsigned char sendBuf[30] = "Press a key\r\n"; nbSwInterrupt =0; _enable_IRQ(); hetInit(); edgeEnableNotification(hetREG2, edge0); sciInit(); sciSend(scilinREG, sizeof(sendBuf), sendBuf); sciReceive(scilinREG,3, &rcvBuf); while(1); /* USER CODE END */ } /* USER CODE BEGIN (4) */ /** * Interrupt routines */ void gioModification(int bit) { return; } void esmGroup1Notification(int bit) { return; } void esmGroup2Notification(int bit) { return; } void pwmNotification(hetBASE_t * hetREG,uint32 pwm, uint32 notification) { return; } void sciNotification(sciBASE_t *sci, uint32 flags) { // send last character sciReceive(sci,1,(unsigned char*)&rcvBuf); sciSend(sci,1,(unsigned char*)&rcvBuf); } void edgeNotification(hetBASE_t * hetREG,uint32 edge) { // if(hetREG == hetREG2) nbSwInterrupt++; } void hetNotification(hetBASE_t *het, uint32 offset) { nbSwInterrupt++; } /* USER CODE END */