X-Git-Url: http://rtime.felk.cvut.cz/gitweb/pes-rpp/rpp-lib.git/blobdiff_plain/179a597654a9cd43046dbacc9161c8353c59d1ae..f346e5add4155fadb70948fa5af608483fd86627:/rpp/src/sys/_rm48_hdk/ti_drv_adc.c diff --git a/rpp/src/sys/_rm48_hdk/ti_drv_adc.c b/rpp/src/sys/_rm48_hdk/ti_drv_adc.c index 09300e0..03a4d2e 100644 --- a/rpp/src/sys/_rm48_hdk/ti_drv_adc.c +++ b/rpp/src/sys/_rm48_hdk/ti_drv_adc.c @@ -12,6 +12,8 @@ /* Include Files */ #include "sys/ti_drv_adc.h" +#include "os/os.h" +#include "os/portmacro.h" /** @fn void adcInit(void) @@ -792,8 +794,10 @@ void adcDisableNotification(adcBASE_t *adc, uint32_t group) #pragma INTERRUPT(adc1Group0Interrupt, IRQ) void adc1Group0Interrupt(void) { - adcNotification(adcREG1, adcGROUP0); + portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + adcNotification(adcREG1, adcGROUP0, &xHigherPriorityTaskWoken); adcREG1->GxINTFLG[0U] = _BV(3) | _BV(0); + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } @@ -803,9 +807,11 @@ void adc1Group0Interrupt(void) #pragma INTERRUPT(adc1Group1Interrupt, IRQ) void adc1Group1Interrupt(void) { - adcNotification(adcREG1, adcGROUP1); + portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + adcNotification(adcREG1, adcGROUP1, &xHigherPriorityTaskWoken); // For ADC1 Group1 see tms570_trm.pdf p. 791 (783) adcREG1->GxINTFLG[1U] = _BV(3) | _BV(0); + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } @@ -815,8 +821,10 @@ void adc1Group1Interrupt(void) #pragma INTERRUPT(adc1Group2Interrupt, IRQ) void adc1Group2Interrupt(void) { - adcNotification(adcREG1, adcGROUP2); + portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + adcNotification(adcREG1, adcGROUP2, &xHigherPriorityTaskWoken); adcREG1->GxINTFLG[2U] = _BV(3) | _BV(0);; + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } @@ -826,8 +834,10 @@ void adc1Group2Interrupt(void) #pragma INTERRUPT(adc2Group0Interrupt, IRQ) void adc2Group0Interrupt(void) { - adcNotification(adcREG2, adcGROUP0); + portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + adcNotification(adcREG2, adcGROUP0, &xHigherPriorityTaskWoken); adcREG2->GxINTFLG[0U] = _BV(3) | _BV(0); + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } @@ -837,8 +847,10 @@ void adc2Group0Interrupt(void) #pragma INTERRUPT(adc2Group1Interrupt, IRQ) void adc2Group1Interrupt(void) { - adcNotification(adcREG2, adcGROUP1); + portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + adcNotification(adcREG2, adcGROUP1, &xHigherPriorityTaskWoken); adcREG2->GxINTFLG[1U] = _BV(3) | _BV(0); + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } @@ -848,7 +860,9 @@ void adc2Group1Interrupt(void) #pragma INTERRUPT(adc2Group2Interrupt, IRQ) void adc2Group2Interrupt(void) { - adcNotification(adcREG2, adcGROUP2); + portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; + adcNotification(adcREG2, adcGROUP2, &xHigherPriorityTaskWoken); adcREG2->GxINTFLG[2U] = _BV(3) | _BV(0); + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); }