Other Parts Discussed in Thread: HALCOGEN
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 */
