Hi,
In my project I need to raise a pin when 25bytes of data is transmitted through UART,as the HAL_UART_DMA_RX_MAX is 128
I need to raise pin for 25bytes,50bytes,75bytes,100,125bytes.
Calling function: (void)NPI_WriteTransport(buffr,25);
#if (HAL_UART_DMA == 1)
HAL_ISR_FUNCTION( halUart0TxIsr, UTX0_VECTOR )
#else
HAL_ISR_FUNCTION( halUart1TxIsr, UTX1_VECTOR )
#endif
{
HAL_ENTER_ISR();
if (dmaCfg.txHead == dmaCfg.txTail)
{
IEN2 &= ~UTXxIE;
dmaCfg.txMT = 1;
}
else
{
UTXxIF = 0;
UxDBUF = dmaCfg.txBuf[dmaCfg.txHead++];
if(dmaCfg.txHead==0x19 || dmaCfg.txHead==0x32 || dmaCfg.txHead==0x4B || dmaCfg.txHead==0x64|| dmaCfg.txHead==0x7D )
{
P2DIR = 0xFF; // All port 1 pins (P2.0-P2.4) as output
P2=0x03;
}
if ((HAL_UART_DMA_TX_MAX != 256) && (dmaCfg.txHead >= HAL_UART_DMA_TX_MAX))
{
dmaCfg.txHead = 0;
}
}
HAL_EXIT_ISR();
}
#endif
in the ISR,I tried to raise the pin as showed in above code , by using
if(dmaCfg.txHead==0x19 || dmaCfg.txHead==0x32 || dmaCfg.txHead==0x4B || dmaCfg.txHead==0x64|| dmaCfg.txHead==0x7D )
but this dint work for me.
any kind of help is appreciable.
Regards
Lokesh