* - adcGROUP0: ADC event group
* - adcGROUP1: ADC group 1
* - adcGROUP2: ADC group 2
-* @param[out] Flag signalling that context switch is required
*
* @note This function has to be provide by the user.
*/
-void adcNotification(adcBASE_t *adc, uint32_t group, portBASE_TYPE* xHigherPriorityTaskWoken);
+void adcNotification(adcBASE_t *adc, uint32_t group);
#endif
#include "drv/drv.h"
#include "drv/port.h"
-#include "os/portmacro.h"
// Binary semaphores for finish notifications
static xSemaphoreHandle sem[2][2];
* - adcGROUP1: ADC group 1
* - adcGROUP2: ADC group 2
*/
-void adcNotification(adcBASE_t *adc, uint32_t group, portBASE_TYPE* xHigherPriorityTaskWoken)
+void adcNotification(adcBASE_t *adc, uint32_t group)
{
if (adcIsConversionComplete(adc, group) == ADC_CONVERSION_IS_FINISHED) {
+ signed portBASE_TYPE dummy;
int adc_idx = (adc == adcREG1) ? 0 : 1;
int grp_idx = (group == adcGROUP1) ? 0 : 1;
- xSemaphoreGiveFromISR(sem[adc_idx][grp_idx], xHigherPriorityTaskWoken);
+ xSemaphoreGiveFromISR(sem[adc_idx][grp_idx], &dummy);
}
}
/* Include Files */
#include "sys/ti_drv_adc.h"
-#include "os/os.h"
-#include "os/portmacro.h"
/** @fn void adcInit(void)
#pragma INTERRUPT(adc1Group0Interrupt, IRQ)
void adc1Group0Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP0, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP0);
adcREG1->GxINTFLG[0U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group1Interrupt, IRQ)
void adc1Group1Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP1, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP1);
// For ADC1 Group1 see tms570_trm.pdf p. 791 (783)
adcREG1->GxINTFLG[1U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group2Interrupt, IRQ)
void adc1Group2Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP2, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP2);
adcREG1->GxINTFLG[2U] = _BV(3) | _BV(0);;
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group0Interrupt, IRQ)
void adc2Group0Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP0, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP0);
adcREG2->GxINTFLG[0U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group1Interrupt, IRQ)
void adc2Group1Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP1, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP1);
adcREG2->GxINTFLG[1U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group2Interrupt, IRQ)
void adc2Group2Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP2, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP2);
adcREG2->GxINTFLG[2U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group0Interrupt, IRQ)
void adc1Group0Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP0, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP0);
adcREG1->GxINTFLG[0U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group1Interrupt, IRQ)
void adc1Group1Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP1, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP1);
// For ADC1 Group1 see tms570_trm.pdf p. 791 (783)
adcREG1->GxINTFLG[1U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group2Interrupt, IRQ)
void adc1Group2Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP2, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP2);
adcREG1->GxINTFLG[2U] = _BV(3) | _BV(0);;
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group0Interrupt, IRQ)
void adc2Group0Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP0, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP0);
adcREG2->GxINTFLG[0U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group1Interrupt, IRQ)
void adc2Group1Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP1, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP1);
adcREG2->GxINTFLG[1U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group2Interrupt, IRQ)
void adc2Group2Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP2, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP2);
adcREG2->GxINTFLG[2U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group0Interrupt, IRQ)
void adc1Group0Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP0, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP0);
adcREG1->GxINTFLG[0U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group1Interrupt, IRQ)
void adc1Group1Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP1, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP1);
// For ADC1 Group1 see tms570_trm.pdf p. 791 (783)
adcREG1->GxINTFLG[1U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group2Interrupt, IRQ)
void adc1Group2Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP2, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP2);
adcREG1->GxINTFLG[2U] = _BV(3) | _BV(0);;
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group0Interrupt, IRQ)
void adc2Group0Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP0, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP0);
adcREG2->GxINTFLG[0U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group1Interrupt, IRQ)
void adc2Group1Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP1, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP1);
adcREG2->GxINTFLG[1U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group2Interrupt, IRQ)
void adc2Group2Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP2, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP2);
adcREG2->GxINTFLG[2U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group0Interrupt, IRQ)
void adc1Group0Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP0, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP0);
adcREG1->GxINTFLG[0U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group1Interrupt, IRQ)
void adc1Group1Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP1, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP1);
// For ADC1 Group1 see tms570_trm.pdf p. 791 (783)
adcREG1->GxINTFLG[1U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc1Group2Interrupt, IRQ)
void adc1Group2Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG1, adcGROUP2, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG1, adcGROUP2);
adcREG1->GxINTFLG[2U] = _BV(3) | _BV(0);;
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group0Interrupt, IRQ)
void adc2Group0Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP0, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP0);
adcREG2->GxINTFLG[0U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group1Interrupt, IRQ)
void adc2Group1Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP1, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP1);
adcREG2->GxINTFLG[1U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
#pragma INTERRUPT(adc2Group2Interrupt, IRQ)
void adc2Group2Interrupt(void)
{
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- adcNotification(adcREG2, adcGROUP2, &xHigherPriorityTaskWoken);
+ adcNotification(adcREG2, adcGROUP2);
adcREG2->GxINTFLG[2U] = _BV(3) | _BV(0);
- portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}