Other Parts Discussed in Thread: HALCOGEN
Hi,
i am using the HALCOGEN for generating the spi code for the TMS470MF06607. after generating the code i am using ccs for flashing code into TMS470MF06607 lanchpad.
But am facing the problem with chip-selects, here the chip-selects are enabling and disabling automatically.
i need to know how can i enable and disable the chip-selects when i required.
please help to solve the problem,here i am attaching the code please check it.
**here i enabled spi in master mode.
thanks.
//spi.c
#include "spi.h"
void spiInit(void)
{
sint32 i ;
/** @b initialize @b MIBSPI1 */
/** bring SPI out of reset */
spiREG1->GCR0 = 1U;
/** enable MIBSPI1 multibuffered mode and enable buffer RAM */
spiREG1->MIBSPIE = (spiREG1->MIBSPIE & 0xFFFFFFFEU) | 1U;
/** MIBSPI1 master mode and clock configuration */
spiREG1->GCR1 = (spiREG1->GCR1 & 0xFFFFFFFCU) | ((1U << 1U) /* CLOKMOD */
| 1U); /* MASTER */
/** MIBSPI1 enable pin configuration */
spiREG1->INT0 = (spiREG1->INT0 & 0xFEFFFFFFU) | (0U << 24U); /* ENABLE HIGHZ */
/** - Delays */
spiREG1->DELAY = (2U << 24U) /* C2TDELAY */
| (2U << 16U) /* T2CDELAY */
| (0U << 8U) /* T2EDELAY */
| 0U; /* C2EDELAY */
/** - Data Format 0 */
spiREG1->FMT0 = (2U << 24U) /* wdelay */
| (0U << 23U) /* parity Polarity */
| (0U << 22U) /* parity enable */
| (0U << 21U) /* wait on enable */
| (0U << 20U) /* shift direction */
| (0U << 17U) /* clock polarity */
| (0U << 16U) /* clock phase */
| (79U << 8U) /* baudrate prescale */
| 8U; /* data word length */
/** - Data Format 1 */
spiREG1->FMT1 = (2U << 24U) /* wdelay */
| (0U << 23U) /* parity Polarity */
| (0U << 22U) /* parity enable */
| (0U << 21U) /* wait on enable */
| (0U << 20U) /* shift direction */
| (0U << 17U) /* clock polarity */
| (0U << 16U) /* clock phase */
| (79U << 8U) /* baudrate prescale */
| 8U; /* data word length */
/** - Data Format 2 */
spiREG1->FMT2 = (2U << 24U) /* wdelay */
| (0U << 23U) /* parity Polarity */
| (0U << 22U) /* parity enable */
| (0U << 21U) /* wait on enable */
| (0U << 20U) /* shift direction */
| (0U << 17U) /* clock polarity */
| (0U << 16U) /* clock phase */
| (79U << 8U) /* baudrate prescale */
| 8U; /* data word length */
/** - Data Format 3 */
spiREG1->FMT3 = (2U << 24U) /* wdelay */
| (0U << 23U) /* parity Polarity */
| (0U << 22U) /* parity enable */
| (0U << 21U) /* wait on enable */
| (0U << 20U) /* shift direction */
| (0U << 17U) /* clock polarity */
| (0U << 16U) /* clock phase */
| (79U << 8U) /* baudrate prescale */
| 8U; /* data word length */
/** - wait for buffer initialization complete before accessing MibSPI registers */
while ((spiREG1->FLG & 0x01000000U) != 0U)
{
} /* Wait */
/** - initialize transfer groups */
spiREG1->TGCTRL[0U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| (0U << 8U); /* start buffer */
spiREG1->TGCTRL[1U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| (8U << 8U); /* start buffer */
spiREG1->TGCTRL[2U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U) << 8U); /* start buffer */
spiREG1->TGCTRL[3U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U) << 8U); /* start buffer */
spiREG1->TGCTRL[4U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U) << 8U); /* start buffer */
spiREG1->TGCTRL[5U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U) << 8U); /* start buffer */
spiREG1->TGCTRL[6U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U+8U) << 8U); /* start buffer */
spiREG1->TGCTRL[7U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U+8U+8U) << 8U); /* start buffer */
spiREG1->TGCTRL[8U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U+8U+8U+8) << 8U); /* start buffer */
spiREG1->TGCTRL[9U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U+8U+8U+8U+0) << 8U); /* start buffer */
spiREG1->TGCTRL[10U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0) << 8U); /* start buffer */
spiREG1->TGCTRL[11U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0) << 8U); /* start buffer */
spiREG1->TGCTRL[12U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U+0) << 8U); /* start buffer */
spiREG1->TGCTRL[13U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U+0U+0) << 8U); /* start buffer */
spiREG1->TGCTRL[14U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U+0U+0U+0) << 8U); /* start buffer */
spiREG1->TGCTRL[15U] = (1U << 30U) /* oneshot */
| (0U << 29U) /* pcurrent reset */
| (TRG_ALWAYS << 20U) /* trigger event */
| (TRG_DISABLED << 16U) /* trigger source */
| ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U+0U+0U+0U+0) << 8U); /* start buffer */
spiREG1->LTGPEND =(spiREG1->LTGPEND & 0xFFFF00FFU) | ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U+0U+0U+0U+0U+0U)-1U);
/** - initialize buffer ram */
{
i = 0U;
if (8U > 0U)
{
while (i < (8U-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_0; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (1U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_0; /* chip select */
}
if (8U > 0U)
{
while (i < ((8U+8U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_1; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (1U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_1; /* chip select */
}
if (8U > 0U)
{
while (i < ((8U+8U+8U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_2; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (1U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_2; /* chip select */
}
if (8U > 0U)
{
while (i < ((8U+8U+8U+8U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_3; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (1U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_3; /* chip select */
}
if (8U > 0U)
{
while (i < ((8U+8U+8U+8U+8U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_4; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (1U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_4; /* chip select */
}
if (8U > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_5; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (1U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_5; /* chip select */
}
if (8U > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U+8U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_6; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (1U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_6; /* chip select */
}
if (8U > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U+8U+8U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (1U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
if (0 > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U+8U+8U+0U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (0U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
if (0U > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (0U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
if (0U > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (0U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
if (0U > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U+0U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (0U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
if (0U > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U+0U+0U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (0U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
if (0U > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U+0U+0U+0U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (0U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
if (0U > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U+0U+0U+0U+0U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (0U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
if (0U > 0U)
{
while (i < ((8U+8U+8U+8U+8U+8U+8U+8U+0U+0U+0U+0U+0U+0U+0U+0U)-1U))
{
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (1U << 12U) /* chip select hold */
| (0U << 11U) /* lock transmission */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
spiRAM1->tx[i++].control = (4U << 13U) /* buffer mode */
| (0U << 12U) /* chip select hold must be zero for last buffer */
| (0U << 10U) /* enable WDELAY */
| (0U << 8U) /* data format */
| CS_7; /* chip select */
}
}
/** - set interrupt levels */
spiREG1->LVL = (0U << 9U) /* TXINT */
| (0U << 8U) /* RXINT */
| (0U << 6U) /* OVRNINT */
| (0U << 4U) /* BITERR */
| (0U << 3U) /* DESYNC */
| (0U << 2U) /* PARERR */
| (0U << 1U) /* TIMEOUT */
| (0U); /* DLENERR */
/** - clear any pending interrupts */
spiREG1->FLG |= 0xFFFFU;
/** - enable interrupts */
spiREG1->INT0 = (spiREG1->INT0 & 0xFFFF0000U)
| (0U << 9U) /* TXINT */
| (0U << 8U) /* RXINT */
| (0U << 6U) /* OVRNINT */
| (0U << 4U) /* BITERR */
| (0U << 3U) /* DESYNC */
| (0U << 2U) /* PARERR */
| (0U << 1U) /* TIMEOUT */
| (0U); /* DLENERR */
/** @b initialize @b MIBSPI1 @b Port */
/** - MIBSPI1 Port output values */
spiREG1->PCDOUT = 1U /* SCS[0] */
| (1U << 1U) /* SCS[1] */
| (1U << 2U) /* SCS[2] */
| (1U << 3U) /* SCS[3] */
| (1U << 4U) /* SCS[4] */
| (1U << 5U) /* SCS[5] */
| (1U << 6U) /* SCS[6] */
| (1U << 7U) /* SCS[7] */
| (0U << 9U) /* CLK */
| (0U << 10U) /* SIMO */
| (0U << 11U); /* SOMI */
/** - MIBSPI1 Port direction */
spiREG1->PCDIR = 1U /* SCS[0] */
| (1U << 1U) /* SCS[1] */
| (1U << 2U) /* SCS[2] */
| (1U << 3U) /* SCS[3] */
| (0U << 4U) /* SCS[4] */
| (1U << 5U) /* SCS[5] */
| (1U << 6U) /* SCS[6] */
| (0U << 7U) /* SCS[7] */
| (1U << 9U) /* CLK */
| (1U << 10U) /* SIMO */
| (0U << 11U); /* SOMI */
/** - MIBSPI1 Port open drain enable */
spiREG1->PCPDR = 0U /* SCS[0] */
| (0U << 1U) /* SCS[1] */
| (0U << 2U) /* SCS[2] */
| (0U << 3U) /* SCS[3] */
| (0U << 4U) /* SCS[4] */
| (0U << 5U) /* SCS[5] */
| (0U << 6U) /* SCS[6] */
| (0U << 7U) /* SCS[7] */
| (0U << 9U) /* CLK */
| (0U << 10U) /* SIMO */
| (0U << 11U); /* SOMI */
/** - MIBSPI1 Port pullup / pulldown selection */
spiREG1->PCPSL = 1U /* SCS[0] */
| (1U << 1U) /* SCS[1] */
| (1U << 2U) /* SCS[2] */
| (1U << 3U) /* SCS[3] */
| (1U << 4U) /* SCS[4] */
| (1U << 5U) /* SCS[5] */
| (1U << 6U) /* SCS[6] */
| (1U << 7U) /* SCS[7] */
| (1U << 9U) /* CLK */
| (1U << 10U) /* SIMO */
| (1U << 11U); /* SOMI */
/** - MIBSPI1 Port pullup / pulldown enable*/
spiREG1->PCDIS = 0U /* SCS[0] */
| (0U << 1U) /* SCS[1] */
| (0U << 2U) /* SCS[2] */
| (0U << 3U) /* SCS[3] */
| (0U << 4U) /* SCS[4] */
| (0U << 5U) /* SCS[5] */
| (0U << 6U) /* SCS[6] */
| (0U << 7U) /* SCS[7] */
| (0U << 9U) /* CLK */
| (0U << 10U) /* SIMO */
| (0U << 11U); /* SOMI */
/* MIBSPI1 set all pins to functional */
spiREG1->PCFUN = 1U /* SCS[0] */
| (1U << 1U) /* SCS[1] */
| (1U << 2U) /* SCS[2] */
| (1U << 3U) /* SCS[3] */
| (1U << 4U) /* SCS[4] */
| (1U << 5U) /* SCS[5] */
| (1U << 6U) /* SCS[6] */
| (1U << 7U) /* SCS[7] */
| (1U << 9U) /* CLK */
| (1U << 10U) /* SIMO */
| (1U << 11U); /* SOMI */
/** - Finally start MIBSPI1 */
spiREG1->GCR1 = (spiREG1->GCR1 & 0xFEFFFFFFU) | (1U << 24U);
}
void spiSetData(spiBASE_t *spi, uint32 group, uint16 * data)
{
spiRAM_t *ram = spi == spiREG1 ? spiRAM1 : spiRAM2;
uint32 start = (spi->TGCTRL[group] >> 8U) & 0xFFU;
uint32 end = group == 7U ? (((spi->LTGPEND & 0x0000EF00U) >> 8U) + 1U) : ((spi->TGCTRL[group+1U] >> 8U) & 0xFFU);
if (end < start) {end = 128U;}
while (start < end)
{
ram->tx[start].data = *data++;
start++;
}
/* USER CODE BEGIN (0) */
/* USER CODE END */
}
void spiEnableGroupNotification(spiBASE_t *spi, uint32 group, uint32 level)
{
if (level != 0U)
{
spi->TGITLVST = (spi->TGITLVST & 0x0000FFFFU) | ((1U << group) << 16U);
}
else
{
spi->TGITLVCR = (spi->TGITLVCR & 0x0000FFFFU) | ((1U << group) << 16U);
}
spi->TGITENST = (spi->TGITENST & 0x0000FFFFU) | ((1U << group) << 16U);
}
void spiTransfer(spiBASE_t *spi, uint32 group)
{
spi->TGCTRL[group] |= 0x80000000U;
}
int main()
{
rtiInit();
spiInit();
gioInit();
hetInit();
gioSetDirection(gioPORTA,0xFFFFFFFF);
gioSetDirection(hetPORT,0xFFFFFFFF);
rtiEnableNotification(rtiNOTIFICATION_COMPARE0);
//_enable_IRQ();
rtiStartCounter(rtiCOUNTER_BLOCK0);
Edge = LOW;
//spiEnableGroupNotification(spiREG1,0,0);
spiEnableGroupNotification(spiREG1,0,0);
spiEnableGroupNotification(spiREG1,1,0);
spiEnableGroupNotification(spiREG1,2,0);
spiEnableGroupNotification(spiREG1,3,0);
spiEnableGroupNotification(spiREG1,4,0);
spiEnableGroupNotification(spiREG1,5,0);
spiEnableGroupNotification(spiREG1,6,0);
spiEnableGroupNotification(spiREG1,7,0);
spiSetData(spiREG1,0,TG0_TX_DATA);
spiSetData(spiREG1,1,TG0_TX_DATA);
spiSetData(spiREG1,2,TG0_TX_DATA);
spiSetData(spiREG1,3,TG0_TX_DATA);
spiSetData(spiREG1,4,TG0_TX_DATA);
spiSetData(spiREG1,5,TG0_TX_DATA);
spiSetData(spiREG1,6,TG0_TX_DATA);
spiSetData(spiREG1,7,TG0_TX_DATA);
while(1)
{
spiTransfer(spiREG1,0);
spiTransfer(spiREG1,1);
spiTransfer(spiREG1,2);
spiTransfer(spiREG1,3);
spiTransfer(spiREG1,4);
spiTransfer(spiREG1,5);
spiTransfer(spiREG1,6);
spiTransfer(spiREG1,7);
}