Example #1
0
//*****************************************************************************
//
//! \brief Ininite the DMA case which is needed
//!
//! \param None
//!
//! \details This function is to ininite the DMA including clock source and
//!  enable DMA
//!
//! \return none
//
//*****************************************************************************
void DMAInit(void)
{
    unsigned long i;

    xIntEnable(INT_DMA0);
    xIntEnable(INT_DMA1);
    xIntEnable(INT_DMA2);
    xIntEnable(INT_DMA3);

    for(i = 0; i < 4; i++)
    {
        DMAChannelDeAssign(ulDMAChannelID[i]);
        DMAEnable(ulDMAChannelID[i]);
    }

    for(i = 0; i < 4; i++)
    {
        ulAssignChannel[i] = DMAChannelDynamicAssign(DMA_REQUEST_MEM,
                             DMA_REQUEST_MEM);
    }

    for(i = 0; i < 4; i++)
    {
        DMAChannelIntEnable(ulDMAChannelID[i], DMA_EVENT_TC);
        DMAChannelIntCallbackInit(ulDMAChannelID[i], DmaCallbackFunc[i]);
    }
}
Example #2
0
static void xpwm002Execute(void)
{          
  
    unsigned long ulBase;
        
    int i, j;
    for(i = 0; i < 2; i++)
    {   
        for(j = 0; j < 4; j++)
        {
            ulBase = PWMBase[i];
                                                     
            //
            // Set invert, dead zone and mode
            //
            xPWMInitConfigure(ulBase, PWMChannel[i], xPWM_TOGGLE_MODE | 
                                            xPWM_OUTPUT_INVERTER_DIS | xPWM_DEAD_ZONE_DIS);
                
            // Set CNR, Prescale and Divider
            xPWMFrequencyConfig(ulBase, PWMChannel[i], 0x0E100028);
                
            //    
            // Set CMR
            //
            xPWMDutySet(ulBase, PWMChannel[i], 40);
                
            //    
            // Set output enable
            //
            xPWMOutputEnable(ulBase, PWMChannel[i]);   
            
            //
            // Set interrupt call back 
            //
            xPWMIntCallbackInit(ulBase, user_Callback);
                
            //
            // PWM output interrupt enable
            //
            xPWMIntEnable(ulBase, PWMChannel[i], xPWM_INT_PWM);
                
            //
            // NVIC interrupt enable
            //
            xIntEnable(xINT_TIMER1);
            xIntEnable(xINT_TIMER2);
            xIntEnable(xINT_TIMER3);
            xIntEnable(xINT_TIMER4);
                
            //    
            // start pwm
            //
            xPWMStart(ulBase, PWMChannel[i]);
            TestAssertQBreak("a", " pwm intterupt test error!", 0xffffffff);
        }             
    }   
}
Example #3
0
void Enable_LLWU(void)
{
	// Enables LLWU interrupt
	xIntEnable(INT_LLWU);

	/* Initialization of the LLWU module */
	LLWU_PE1 = 0;
	LLWU_PE2 = 0;
	LLWU_PE3 = 0;
	LLWU_PE4 =  0x20;

	/* LLWU_ME: WUME7=0,WUME5=0,WUME4=0,WUME1=0,WUME0=1 */
	LLWU_ME = (uint8_t)((LLWU_ME & (uint8_t)~(uint8_t)(
			   LLWU_ME_WUME7_MASK |
			   LLWU_ME_WUME5_MASK |
			   LLWU_ME_WUME4_MASK |
			   LLWU_ME_WUME1_MASK
			  )) | (uint8_t)(
			   LLWU_ME_WUME0_MASK
			  ));

	/* LLWU_FILT1: FILTF=1,FILTE=0,??=0,FILTSEL=0 */
	LLWU_FILT1 = LLWU_FILT1_FILTF_MASK |
				 LLWU_FILT1_FILTE(0x00) |
				 LLWU_FILT1_FILTSEL(0x00);
	/* LLWU_FILT2: FILTF=1,FILTE=0,??=0,FILTSEL=0 */
	LLWU_FILT2 = LLWU_FILT2_FILTF_MASK |
				 LLWU_FILT2_FILTE(0x00) |
				 LLWU_FILT2_FILTSEL(0x00);
}
Example #4
0
//*****************************************************************************
//
//! \brief  Wdt api wdt interrupt test.
//!
//! \return None.
//
//*****************************************************************************
static void wdt_WDTInterrupt_test(void)
{
   //
   // Set WatchDog Timer(WDT)'s Timer Interval.
   //  
    WDTimerInit(WDT_INTERVAL_2_10T);
    
   //
   // Enable the WDT Interrupt
   //
    WDTimerFunctionEnable(WDT_INT_FUNCTION);
    
    xIntEnable(INT_WDT);
    
   //
   // Install the callback function
   //
    WDTimerIntCallbackInit(WDTCallback);
    
   //
   // Start the WDT
   //
    WDTimerEnable();
    
    TestAssertQBreak("a", "Transfer Over Interrupy fialed!", 5000000);
}
Example #5
0
//*****************************************************************************
//
//! \brief  adc api interrupt state and data get test.
//!
//! \return None.
//
//*****************************************************************************
static void adcIntTest(void)
{

	//
    // Set the length of converter
    //
    // ADCConverLenSet(ADC1_BASE, 1, 1);
    //
    // Test ADC configure API
    //
    // ADCSequenceIndexSet(ADC1_BASE, ulAdcSeqNo, ulAdcSeqNo);
    // ADCSampLenSet(ADC1_BASE, 14, ADC_SAMPTIME_7_5_CYCLE);

    //
    // A/D interrupt enable 
    //
    ADCIntEnable(ADC_BASE, ADC_INT_END_CONVERSION);
    xIntEnable(INT_ADC);
    xADCIntCallbackInit(ADC_BASE, ADC0IntFucntion);

    //
    // A/D configure 
    //
    ADCConfigure(ADC_BASE, ADC_INPUT_SINGLE, ADC_OP_CONTINUOUS, ADC_TRIGGER_PROCESSOR);
    ADCProcessorTrigger(ADC_BASE);
    TestAssertQBreak("T", "xadc interrupt function error!", 0xFFFFFFFF);
}
Example #6
0
File: Wakeup.c Project: 0xc0170/cox
//*****************************************************************************
//
//! \brief  Wdt wakeup example.
//!
//! \return None.
//
//*****************************************************************************
void Wakeup(void) 
{
    //
    // Set WDT clock and interval time.
    //
    xWDTInit(xWDT_BASE, SYSCTL_PERIPH_WDG_S_INT10K, xWDT_INTERVAL_2_10T);

    //
    // Set WDT interrupt and initionalize callback.
    //
    xWDTIntCallbackInit(xWDT_BASE, user_Callback);
    
    //
    // Enable WDT wake up function.
    //
    xWDTFunctionEnable(xWDT_BASE, xWDT_WAKEUP_FUNCTION | xWDT_INT_FUNCTION);
    xIntEnable( xINT_WDT );
    
    //
    // Start WDT timer.
    //
    xWDTEnable( xWDT_BASE );
   
    //
    // Make chip enter into sleep state.
    //
    xSysCtlSleep();
    
    //
    // Interrupt wake up cpu.
    //
    xCPUwfi();

}
Example #7
0
File: main.c Project: AlexGora/cox
int main(void)
{
	unsigned char i;
	xSysCtlClockSet(16000000,  xSYSCTL_OSC_MAIN | xSYSCTL_XTAL_8MHZ);
//	xSysCtlPeripheralEnable(SYSCTL_PERIPH_AFIO);


	SensorShieldInit();
	SensorShieldIOInit();

    xGPIOSPinDirModeSet(SENSOR_SHIELD_I0, xGPIO_DIR_MODE_IN);
    xGPIOSPinDirModeSet(SENSOR_SHIELD_I1, xGPIO_DIR_MODE_IN);
    xGPIOSPinDirModeSet(SENSOR_SHIELD_I2, xGPIO_DIR_MODE_IN);
    xGPIOSPinIntEnable(SENSOR_SHIELD_I0, xGPIO_RISING_EDGE);
    xGPIOSPinIntEnable(SENSOR_SHIELD_I1, xGPIO_RISING_EDGE);
    xGPIOSPinIntEnable(SENSOR_SHIELD_I2, xGPIO_RISING_EDGE);
    xGPIOSPinIntCallbackInit(SENSOR_SHIELD_I0, Key1Callback);
    xGPIOSPinIntCallbackInit(SENSOR_SHIELD_I1, Key2Callback);
    xGPIOSPinIntCallbackInit(SENSOR_SHIELD_I2, Key3Callback);
    xIntEnable(xINT_GPIOB);
    xIntEnable(xINT_GPIOB);

	SensorShieldOutWrite(SENSOR_SHIELD_O0, 1);
	SensorShieldOutWrite(SENSOR_SHIELD_O1, 1);
	SensorShieldOutWrite(SENSOR_SHIELD_O2, 1);
	SensorShieldOutWrite(SENSOR_SHIELD_O3, 1);
	SensorShieldOutWrite(SENSOR_SHIELD_O4, 1);
	SensorShieldOutWrite(SENSOR_SHIELD_O5, 1);

    while(1)
    {
    	if(key2)
    	{
    		key2 = 0;
    		for(i=0;i<10;i++){
    		SensorShieldOutWrite(SENSOR_SHIELD_O0, 1);
    		SensorShieldOutWrite(SENSOR_SHIELD_O1, 1);
    		SensorShieldOutWrite(SENSOR_SHIELD_O2, 1);
    		SysCtlDelay(1000000);
    		SensorShieldOutWrite(SENSOR_SHIELD_O0, 0);
    		SensorShieldOutWrite(SENSOR_SHIELD_O1, 0);
    		SensorShieldOutWrite(SENSOR_SHIELD_O2, 0);
    		SysCtlDelay(1000000);
    		}
    	}
    }
}
Example #8
0
/*
 * Initiate the Wire library and join the I2C bus as a slave. This should normally be called only once.
 * Parameters: address: the 7-bit slave address (optional);
 */
void WireClass::begin(uint8_t address){
    // Init the I2C as slave
    //xI2CSlaveInit(i2cPort, address, xI2C_GENERAL_CALL_EN); //mcy
    xI2CSlaveEnable(i2cPort);
    xI2CIntCallbackInit(i2cPort, WireClass::I2CCallbackFunc);
    xI2CSlaveIntEnable(i2cPort, xI2C_SLAVE_INT_DATA | xI2C_MASTER_INT_DATA);
    xIntEnable(xSysCtlPeripheraIntNumGet(i2cPort));
}
void main(void)
{ 
    //unsigned long ulTmp = 0;

    /********************** Configure System clock *************************/
    SysCtlClockSet(100000000, SYSCTL_OSC_INT | SYSCTL_XTAL_12_MHZ);
    SysCtlDelay(TICK_SLOW);

    // Configure LED(PC3) pin
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
    xGPIOSPinTypeGPIOOutput(PC3);

    // Turn off LED
    GPIOPinClr(GPIOC_BASE, GPIO_PIN_3);

    // Disable NVIC RTC interrupt
    xIntDisable(xINT_RTC);
    RTCDisable();
    RTCIntCallbackInit(RTCHandler);

    // Enable RTC second increment interrupt.
    // Enable RTC minute interrupt.
    RTCIntCfg( INT_SEC_EN          |   INT_MIN_DIS         |
               INT_HOUR_DIS        |   INT_DOM_DIS         |
               INT_DOW_DIS         |   INT_DOY_DIS         |
               INT_MON_DIS         |   INT_YEAR_DIS        |
               INT_ALARM_SEC_DIS   |   INT_ALARM_MIN_EN    |
               INT_ALARM_HOUR_DIS  |   INT_ALARM_DOM_DIS   |
               INT_ALARM_DOW_DIS   |   INT_ALARM_DOY_DIS   |
               INT_ALARM_MON_DIS   |   INT_ALARM_YEAR_DIS  );

    RTCTimeSet(RTC_TIMETYPE_SECOND,      0);
    RTCTimeSet(RTC_TIMETYPE_MINUTE,      0);
    RTCTimeSet(RTC_TIMETYPE_HOUR,        0);
    RTCTimeSet(RTC_TIMETYPE_DAYOFWEEK,   0);
    RTCTimeSet(RTC_TIMETYPE_DAYOFMONTH,  0);
    RTCTimeSet(RTC_TIMETYPE_DAYOFYEAR,   0);
    RTCTimeSet(RTC_TIMETYPE_MONTH,       0);
    RTCTimeSet(RTC_TIMETYPE_YEAR,        0);

    RTCAlarmSet(RTC_TIMETYPE_SECOND,     0);
    RTCAlarmSet(RTC_TIMETYPE_MINUTE,     1);
    RTCAlarmSet(RTC_TIMETYPE_HOUR,       0);
    RTCAlarmSet(RTC_TIMETYPE_DAYOFWEEK,  0);
    RTCAlarmSet(RTC_TIMETYPE_DAYOFMONTH, 0);
    RTCAlarmSet(RTC_TIMETYPE_DAYOFYEAR,  0);
    RTCAlarmSet(RTC_TIMETYPE_MONTH,      0);
    RTCAlarmSet(RTC_TIMETYPE_YEAR,       0);

    RTCEnable();
    RTCCounterReset();
    xIntEnable(xINT_RTC);

    while (1)
    {
        ; // DoNothing
    }
}
Example #10
0
File: adt75.c Project: AlexGora/cox
//*****************************************************************************
//
//! \brief Enable OTI mode corresponding pin interrupt.
//!
//! \param None
//! 
//! \return None
//
//*****************************************************************************
void ADT75IntEnable(void)
{
    unsigned long ulBase;
    
    xGPIOSPinTypeGPIOInput(ADT75_PIN_OS);
    xGPIOSPinIntEnable(ADT75_PIN_OS, ADT75_LEVEL_OS);
    ulBase = xGPIOSPinToPort(ADT75_PIN_OS);
    xIntEnable(xSysCtlPeripheraIntNumGet(ulBase)); 
}
Example #11
0
//*****************************************************************************
//
//! Ininite the ADC 
//!
//! \param None
//!
//! This function ininite the ADC including clock source and enable ADC 
//!
//! \return none
//
//*****************************************************************************
void ADConvert(void)
{
  
    unsigned long ulAdcSeqNo[] = {0};

    xSysCtlClockSet(72000000, xSYSCTL_OSC_MAIN | xSYSCTL_XTAL_8MHZ);
    xSysCtlDelay(10000);

    xSysCtlPeripheralEnable(xSYSCTL_PERIPH_GPIOA);
    //
    // configure GPIO pin as ADC function
    //
    xSPinTypeADC(ADC0, PA0);
    //
    // Reset ADC 
    //
    xSysCtlPeripheralReset(xSYSCTL_PERIPH_ADC1);

    //
    // Set ADC clock source
    //
    xSysCtlPeripheralClockSourceSet(xSYSCTL_ADC0_MAIN, 4);

    //
    // Enable ADC clock 
    //
    xSysCtlPeripheralEnable(xSYSCTL_PERIPH_ADC1);
 
    //
    // Set the length of converter
    //
    ADCConverLenSet(ADC1_BASE, 1, 1);

    //
    // Set the Index of converter Sequence
    //
    ADCSequenceIndexSet(ADC1_BASE, ulAdcSeqNo, ulAdcSeqNo);

    ADCSampLenSet(ADC1_BASE, 0, 128);

    //
    // A/D interrupt enable 
    //
    ADCIntEnable(ADC1_BASE, ADC_INT_END_CONVERSION);
    xIntEnable(xINT_ADC0);
    xADCIntCallbackInit(ADC1_BASE, ADC0IntFucntion);
    //
    // Software trigger enable
    //
    ADCProcessorTrigger(ADC1_BASE);
    //
    // A/D configure 
    //
    ADCRegularConfigure(ADC1_BASE, ADC_OP_SINGLE, ADC_TRIGGER_PROCESSOR);
    ADCDataRegularGet(ADC1_BASE, ADC_MODE_NORMAL);
}
Example #12
0
void UART_Example_Basic(void)
{ 

    /********************** Configure System clock *************************/
    SysCtlClockSet(100000000, SYSCTL_OSC_INT | SYSCTL_XTAL_12_MHZ);
    SysCtlDelay(TICK_SLOW);
    
    /********************** Configure GPIO Port ****************************/      
#if (UART_ID == 0)
    // 1: Enable GPIO Power and Clock
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    // 2: Map GPIO Pin
    //    UART0 TX --> PA2
    //    UART0 RX --> PA3
    xSPinTypeUART(UART0TX, PA2);
    xSPinTypeUART(UART0RX, PA3);
#elif (UART_ID == 1)
    // 1: Enable GPIO Power and Clock
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
    // 2: Map GPIO Pin
    //    UART1 TX --> PC0
    //    UART1 RX --> PC1
    xSPinTypeUART(UART1TX, PC0);
    xSPinTypeUART(UART1RX, PC1);
#endif  

    /********************** Configure UART *********************************/
    // 1: Enable UART0 Power and clock
#if (UART_ID == 0)
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
    UARTCfg(UART0_BASE, 9600, UART_CFG_LEN_8_BIT | UART_CFG_STOP_1_BIT |
            UART_CFG_PARITY_NONE | UART_CFG_BREAK_DIS);
    UARTFIFOCfg(UART0_BASE, FIFO_CFG_FIFO_EN | FIFO_CFG_RX_TRI_LVL_0);

    UARTIntEnable(UART0_BASE, INT_ABEO | INT_ABTO);
    UARTIntCallbackInit(UART0_BASE, UserUARTHandler);
    xIntEnable(xINT_UART0);
    xHWREG(UART0_BASE + ACR) |= ACR_START;
    while(Passed == 0);
    UARTStrSend(UART0_BASE, "\r\nHello world\r\n");
#elif (UART_ID == 1)
    // 1: Enable UART1 Power and clock
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
    UARTCfg(UART1_BASE, 9600, UART_CFG_LEN_8_BIT | UART_CFG_STOP_1_BIT |
            UART_CFG_PARITY_NONE | UART_CFG_BREAK_DIS);
    UARTFIFOCfg(UART1_BASE, FIFO_CFG_FIFO_EN | FIFO_CFG_RX_TRI_LVL_0);

    UARTStrSend(UART1_BASE, "Hello world\r\n");
#endif

    while (1)
    {
        ;
    }
}
Example #13
0
//*****************************************************************************
//
//! \brief PWM output function example.
//!
//! \return None.
//
//*****************************************************************************
void PWM_Output()
{
    //
    // Initionalize system clock and I/O port.
    //
    IOInit();

    PrintLine( "*** Cox PWM example ***" );

    //
    // Set GPIO Pin as PWM and enable PWM
    //
    xSPinTypePWM(PWM2, PA14);
    xSysCtlPeripheralEnable(xSYSCTL_PERIPH_PWMA);

    //
    // Set invert, dead zone and mode
    //
    xPWMInitConfigure(xPWMA_BASE, xPWM_CHANNEL2, xPWM_TOGGLE_MODE |
                      xPWM_OUTPUT_INVERTER_DIS | xPWM_DEAD_ZONE_DIS );

    // Set CNR, Prescale and Divider
    xPWMFrequencyConfig(xPWMA_BASE, xPWM_CHANNEL2, 0x3FF1111);

    //
    // Set CMR
    //
    xPWMDutySet(xPWMA_BASE, xPWM_CHANNEL2, 40);

    //
    // Set output enable
    //
    xPWMOutputEnable(xPWMA_BASE, xPWM_CHANNEL2);

    // Set interrupt call back
    xPWMIntCallbackInit(xPWMA_BASE, user_Callback);

    //
    // PWM output interrupt enable
    //
    xPWMIntEnable(xPWMA_BASE, xPWM_CHANNEL2, xPWM_INT_PWM);

    //
    // NVIC interrupt enable
    //
    xIntEnable(xINT_PWMA);

    //
    // start pwm
    //
    xPWMStart(xPWMA_BASE, xPWM_CHANNEL2);
}
Example #14
0
//*****************************************************************************
//
//! \brief xacmp 002 test execute main body.
//!
//! \return None.
//
//*****************************************************************************
static void xACMP002Execute(void)
{
    unsigned long ulTemp;
    for(ulTemp=0;ulTemp<2;ulTemp++)
    {
        ACMPConfigure(ulBase, ulTemp, ulTempData[0]);
        ACMPCancellation(ulBase, ulTemp, ACMP_POSITIVE_INPUT);
        ACMPEnable(ulBase, ulTemp);
        ACMPIntEnable(ulBase, ulTemp, ACMP_INT_RISING | ACMP_INT_FALLING);  
        xACMPIntCallbackInit(ulBase, ulTemp, ACMPCallback);
        xIntEnable(xSysCtlPeripheralIntNumGet(ulBase));
        SysCtlDelay(20000);
        TestAssertQBreak("a", "Int error!", -1);
    }
    
}
Example #15
0
void Init_UART0(int baud, int buffer_size)
{
	xtEventCallback UART0_INT_HANDLE = USART0IntHandler;

	// Enable GPIO and UART Clock
	SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

	// Remap UART pin to GPIO Port UART0_RX --> PA2 UART0_TX --> PA1
	xSPinTypeUART(UART0RX, PA1);
	xSPinTypeUART(UART0TX, PA2);

	// Set UART clock
	SysCtlPeripheralClockSourceSet(SYSCTL_PERIPH_UART0_S_MCGPLLCLK_2);

	// Disable UART Receive/Transmit
	UARTDisable(UART0_BASE, UART_TX | UART_RX);

	// Configure UART Baud 115200
	UARTConfigSet(UART0_BASE, baud, UART_CONFIG_SAMPLE_RATE_DEFAULT | UART_CONFIG_WLEN_8 | UART_CONFIG_PAR_NONE | UART_CONFIG_STOP_1);

	if (OSSemCreate(0, &SerialTX0) != ALLOC_EVENT_OK)
	{
	  // Oh Oh
	  // Não deveria entrar aqui !!!
	  while(1){};
	};

	// Só cria fila se for passado um tamanho maior que 0
	if (buffer_size){
		if (OSQueueCreate(buffer_size, &Serial0) != ALLOC_EVENT_OK)
		{
		  // Oh Oh
		  // Não deveria entrar aqui !!!
		  while(1){};
		};
	}

	UARTIntEnable(UART0_BASE, UART_INT_R);
	UARTIntCallbackInit(UART0_BASE, UART0_INT_HANDLE);

	// Enable UART Receive and Transmit
	UARTEnable(UART0_BASE, UART_TX | UART_RX);

	xIntEnable(28);
}
Example #16
0
void Init_UART2(void)
{
	xtEventCallback UART2_INT_HANDLE = USART2IntHandler;

	// Enable GPIO and UART Clock
	SysCtlPeripheralEnable(SYSCTL_PERIPH_UART2);
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);

	// Remap UART pin to GPIO Port UART0_RX --> PA2 UART0_TX --> PA1
	xSPinTypeUART(UART2RX, PE23);
	xSPinTypeUART(UART2TX, PE22);

	// Set UART clock
	SysCtlPeripheralClockSourceSet(SYSCTL_PERIPH_UART0_S_MCGPLLCLK_2);

	// Disable UART Receive/Transmit
	UARTDisable(UART2_BASE, UART_TX | UART_RX);

	// Configure UART Baud 115200
	UARTConfigSet(UART2_BASE, 9600, UART_CONFIG_SAMPLE_RATE_DEFAULT | UART_CONFIG_WLEN_8 | UART_CONFIG_PAR_NONE | UART_CONFIG_STOP_1);

	if (OSSemCreate(0, &SerialTX2) != ALLOC_EVENT_OK)
	{
	  // Oh Oh
	  // Não deveria entrar aqui !!!
	  while(1){};
	};

	if (OSQueueCreate(128, &Serial2) != ALLOC_EVENT_OK)
	{
	  // Oh Oh
	  // Não deveria entrar aqui !!!
	  while(1){};
	};

	UARTIntEnable(UART2_BASE, UART_INT_R);
	UARTIntCallbackInit(UART2_BASE, UART2_INT_HANDLE);

	// Enable UART Receive and Transmit
	UARTEnable(UART2_BASE, UART_TX | UART_RX);

	xIntEnable(30);
}
Example #17
0
void Enable_INT_Pin(void)
{
	// Enables pin clock
	SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);

	// Init pin as GPIO, with pull-up enabled
	PORTD_PCR4 = (uint32_t)((PORTD_PCR4 & (uint32_t)~(uint32_t)(
				  PORT_PCR_ISF_MASK |
				  PORT_PCR_MUX(0x06)
				 )) | (uint32_t)(
				  PORT_PCR_MUX(0x01) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK
				 ));

	// Enable interrupt as falling edge
	GPIOPinIntEnable(GPIOD_BASE, GPIO_PIN_4, GPIO_FALLING_EDGE);

	// Enable INT
	xIntEnable(INT_PORTD);
}
Example #18
0
//*****************************************************************************
//
//! test RX,TX interrupt 
//!
//! \return None.
//
//*****************************************************************************
void xuart005Execute_uartInt(void)
{
    unsigned char info[] = "Hello,CooCox World!";

    //
    // Register the uart0 interrupt handler, Enable uart0 receive interrupt.
    //
    UARTIntCallbackInit(UART0_BASE, uart0CallbackFunc);
    UARTIntEnable(UART0_BASE, UART_INT_THRE);
    xIntEnable(INT_UART0);
    xIntMasterEnable();

    UARTBufferWrite(UART0_BASE, info, countof(info));
        
    //
    // wait until Transmitter FIFO level is less than the transmitter FIFO threshold.
    //
    TestAssertQBreak("b","UART Tx FIFO interrupt test fail", 0xFFFFFFFF);
}
Example #19
0
File: Wakeup.c Project: 0xc0170/cox
//*****************************************************************************
//
//! \brief Wdt wakeup example.
//!
//! \return None.
//
//*****************************************************************************
void Wakeup(void) 
{
    xSysCtlClockSet(72000000, xSYSCTL_OSC_MAIN | xSYSCTL_XTAL_8MHZ);
    SysCtlDelay(10000);
    //
    // Enable WDT wake up function.
    //
    xWDTFunctionEnable(xWDT_BASE, xWDT_INT_FUNCTION);

    //
    // Set WDT clock and interval time.
    //
    xWDTInit(xWDT_BASE, SYSCTL_PERIPH_WDG_S_EXTSL, 512);

    //
    // Set WDT interrupt and initionalize callback.
    //
    xWDTIntCallbackInit(xWDT_BASE, WdtCallback);
    xIntEnable(xINT_WDT);
}
Example #20
0
void TCN75Exp()
{   
    //
	// Initalizes I2C.
	//
    TCN75Init(5000);

	//
	// config TCN75.
	//
	TCN75WakeUp();
	TCN75Config(TCN75_MODE_CMP | TCN75_POLARITY_HIGH | TCN75_FAULTQUE_6);
	TCN75LowLimitSet(fTemp);
	TCN75UpLimitSet(fTemp);
	
	
    xSysCtlPeripheralEnable(SYSCTL_PERIPH_GPIO);
    xGPIODirModeSet(GPIO_PORTA_BASE, GPIO_PIN_12, GPIO_DIR_MODE_OUT);
    
	TCN75IntConfig(test_Led);

    xIntEnable(xINT_GPIOB);
    xIntMasterEnable();
	
	uli = 0;

	while(!uli)
	{
	    fTemp = TCN75TempReadFDC();
		
	    for(ulj = 0; ulj < 0xfff ;ulj++);
	}  
	
	xIntDisable(xINT_GPIOB);
    xIntMasterDisable();	
  
	//
	// Disables I2C0, set TCN75 as shutdown mode.
	//
	TCN75DeInit();	
}
Example #21
0
//*****************************************************************************
//
//! \brief Initialize STMPE811 and I2C  
//!
//! \param None
//!
//! This function initialize the mcu I2C as master and specified I2C port.the 
//! master block will be set up to transfer data at 400 kbps.
//! 
//! \return None.
//
//*****************************************************************************
void STMPE811Init(void)
{
    //
    // Enable GPIO Periph clock and Alternate Fuction I/O clock.
    //  
    xSysCtlPeripheralEnable(STMPE811_I2C_GPIO);
    xSysCtlPeripheralEnable(SYSCTL_PERIPH_AFIO);
    //
    // Enable the I2C which is connected with STMPE811
    //
    xSysCtlPeripheralEnable2(STMPE811_PIN_I2C_PORT);   
    //
    // Set STMPE811_PIN_I2C_SCK as IICx.SCK
    //
    xSPinTypeI2C(STMPE811_I2C_SCK, STMPE811_PIN_I2C_SCK);   
    //
    // Set STMPE811_PIN_I2C_SDA as I2Cx.SDA
    //
    xSPinTypeI2C(STMPE811_I2C_SDA, STMPE811_PIN_I2C_SDA);  
    //
    // I2C enable
    //
    xI2CMasterEnable(STMPE811_PIN_I2C_PORT);
    //
    // Initializes the I2C Master block.
    //
    xI2CMasterInit(STMPE811_PIN_I2C_PORT, I2C_Speed);
    //
    // Set INT pin.
    //
    xGPIODirModeSet(STMPE811_INT_PORT, STMPE811_INT_GPIO, xGPIO_DIR_MODE_IN);
    //
    // Set GPIO pin interrupt callback.
    //
    xGPIOPinIntCallbackInit(STMPE811_INT_PORT, STMPE811_INT_GPIO, STMPE811IntCallback);
    //  Enable GPIO pin interrupt.
    xGPIOPinIntEnable(STMPE811_INT_PORT, STMPE811_INT_GPIO, xGPIO_FALLING_EDGE);
    xIntEnable(INT_GPIO);
    // STNPE811 initializtion.
    STMPE811InitConfig();     
}
Example #22
0
//*****************************************************************************
//
//! \brief  Wdt api wdt wakeup test.
//!
//! \return None.
//
//*****************************************************************************
static void wdt_WakeUp_test(void)
{
    unsigned long ulTemp;
//
// Set WatchDog Timer(WDT)'s Timer Interval.
//  
    WDTimerInit(WDT_INTERVAL_2_14T);
    
//
// Enter WDT function of wake up
//    
    WDTimerFunctionEnable(WDT_WAKEUP_FUNCTION | WDT_INT_FUNCTION);
    
    xIntEnable(INT_WDT);
    
//
// Install WDT callback function
//
    WDTimerIntCallbackInit(WDTCallbackSW);

//
// Start the WDT
//
    WDTimerEnable();
    ulTemp = xHWREG(WDT_WTCR);
//
// Enter power down mode
//
    SysCtlPWRWUIntEnable(xtrue, xtrue);
    SysCtlPowerDownEnable(xtrue);
    SysCtlPowerDownWaitCPUSet(xtrue);
    xCPUwfi();
    
    PrintLine("Leave sleep mode!");
    TestIOPut('\r');
    TestIOPut('\n');
    
    ulTemp = xHWREG(WDT_WTCR);
    TestAssert(WDT_WTCR_WTWKF == (ulTemp & WDT_WTCR_WTWKF), "WDT API error!");
}
Example #23
0
static void xspi004_MasterIntFunction(void)
{
    unsigned long i, ulTemp=0;
    
    //
    // Configure Some GPIO pins as SPI Mode
    //    
    xSPinTypeSPI(SPI0CLK,  PC5);
    xSPinTypeSPI(SPI0CS,   PC4);
    xSPinTypeSPI(SPI0MISO, PC7);
    xSPinTypeSPI(SPI0MOSI, PC6);   
   
    //xHWREGB(xSPI0_BASE + SPI_C1) = 0x54; 
    //xHWREGB(xSPI0_BASE + SPI_C2) = 0x80; 
    //xHWREGB(xSPI0_BASE + SPI_BR) = 0x00; 
    //xHWREGB(xSPI0_BASE + SPI_M) = 0x04;

    //
    // Master Mode polarity 0,Rx latched at rising edge Tx changed at rising edge
    // 2000000Hz 8Bits Data windth SPI MSB First
    //
    ulTemp = xSPI_MOTO_FORMAT_MODE_0 | xSPI_MODE_MASTER | xSPI_MSB_FIRST;
    
    xSPIConfigSet(xSPI0_BASE, 20000, ulTemp);
    
    xSPIEnable(xSPI0_BASE);

    xIntEnable(INT_SPI0);   
    xIntPrioritySet(INT_SPI0, 1); 
    xSPIIntCallbackInit(xSPI0_BASE, SPI0Callback);
    xSPIIntEnable(xSPI0_BASE, SPI_SPTEF | SPI_SPRF);      
 
    while(!ulFlag);
        
    for(i = 0; i < 8; i++)
    {
        TestAssert((ulSourceData[i] == ulDestData[i]), "xspi API error!");
        ulSourceData[i] = 0;
    }
}
Example #24
0
//*****************************************************************************
//
//! \brief xtimer 002 test execute main body.
//!
//! \return None.
//
//*****************************************************************************
static void xTimer002Execute(void)
{
    unsigned long ulTemp;
    unsigned long ulBase;
    int i;

    //
    // Periodic mode
    //
    for(i = 0; i < 2; i++)
    {
        ulBase = ulTimerBase[i];
        ulTemp = 0;
        
        //
        // Clear the flag first
        //
        TimerIntClear(ulBase, TIMER_INT_UEV1);
        
        //
        // Config as periodic mode
        //
        xTimerInitConfig(ulBase, xTIMER_CHANNEL0, xTIMER_MODE_PERIODIC | xTIMER_COUNT_UP, 1000); 
		xTimerMatchSet(ulBase, xTIMER_CHANNEL0, 1000);
		xTimerPrescaleSet(ulBase, xTIMER_CHANNEL0, 8);
		   
        xTimerIntCallbackInit(ulBase, TimerCallbackFunc[i]);
        xTimerIntEnable(ulBase, xTIMER_CHANNEL0, xTIMER_INT_MATCH);
        xIntEnable(ulTimerIntID[i]);

        xTimerStart(ulBase, xTIMER_CHANNEL0);
        

        TestAssertQBreak("b","Intterrupt test not happen", 0xfffffffe);
        xTimerStop(ulBase, xTIMER_CHANNEL0);       
    }
    
}
Example #25
0
//*****************************************************************************
//
//! \brief xgpio002 test execute main body.
//!
//! \return None.
//
//*****************************************************************************
void External_Int(void)
{
    xSysCtlClockSet(12000000, xSYSCTL_XTAL_12MHZ | xSYSCTL_OSC_MAIN);
    xSysCtlPeripheralEnable(xSYSCTL_PERIPH_GPIOD);    
    
    //
    // Level trigger interrupt
    //
    xGPIOSPinTypeGPIOInput(PD7);
    
    //
    // Set GPIO pin interrupt callback.
    //
    xGPIOPinIntCallbackInit(ulGPIO[1], xGPIO_PIN_7, user_Callback);
    
    //
    // Enable GPIO pin interrupt.
    //
    xGPIOPinIntEnable(ulGPIO[1], xGPIO_PIN_7, xGPIO_FALLING_EDGE);
    
    xIntEnable(ulGPIOInt[1]);
    while(1); 
}   
Example #26
0
//*****************************************************************************
//
//! \brief xgpio002 test execute main body.
//!
//! \return None.
//
//*****************************************************************************
static void xgpio002Execute(void)
{
    cIntCount = 0;
    
    //
    // Level trigger interrupt
    //
    xGPIOSPinTypeGPIOInput(PD7);
    
    //
    // Set GPIO pin interrupt callback.
    //
    xGPIOPinIntCallbackInit(ulGPIO[1], xGPIO_PIN_7, user_Callback);
    
    //
    // Enable GPIO pin interrupt.
    //
    xGPIOPinIntEnable(ulGPIO[1], xGPIO_PIN_7, xGPIO_FALLING_EDGE);
    
    xIntEnable(ulGPIOInt[1]);
    TestAssertQBreak("a", "gpio interrupt teset fail", 0xffffffff);     

}   
Example #27
0
File: Acmp.c Project: 0xc0170/cox
//*****************************************************************************
//
//! Ininite the acmp 
//!
//! \param None
//!
//! This function ininite the ACMP including clock source and enable ACMP 
//!
//! \return none
//
//*****************************************************************************
void ACMPCompare(void)
{
    //
    // Set SysClk 36MHz using Extern 12M oscillator
    //
    xSysCtlClockSet(12000000, xSYSCTL_OSC_MAIN | xSYSCTL_XTAL_12MHZ);
    
    //
    // Enable Peripheral SPI0
    //
    xSysCtlPeripheralEnable(xSYSCTL_PERIPH_ACMP0);
    
    //
    // Configure the ACMP pin
    //
    xSPinTypeACMP(CMP0IN0, PC6);
    xSPinTypeACMP(CMP0IN1, PC7);
    xSPinTypeACMP(CMP0IN2, PC8);
    
    //
    // Congigure Comp-(Analog source negative input) is CPN pin
    //
    xACMPConfigure(xACMP0_BASE, 0, xACMP_ASRCN_PIN_IN0);
    xACMPConfigure(xACMP0_BASE, 0, xACMP_ASRCN_PIN_IN1);
    
    //
    // Configure the INT 
    //
    xACMPIntCallbackInit( xACMP0_BASE, 0, user_Callback );
    xACMPIntEnable( xACMP0_BASE, 0 );	
    xIntEnable( xINT_ACMP0 );

    //
    // Enable ACMP
    //
    xACMPEnable( xACMP0_BASE, 0 );    
}
Example #28
0
//*****************************************************************************
//
//! \brief something should do before the test execute of xsysctl002 test.
//!
//! \return None.
//
//*****************************************************************************
static void xI2C001Setup(void)
{    
    xSysCtlPeripheralEnable2(ulSlave);
    xSysCtlPeripheralReset2(ulSlave);
    
    xSysCtlPeripheralEnable2(ulMaster);
    xSysCtlPeripheralReset2(ulMaster);
    
    xSysCtlPeripheralEnable2(GPIOB_BASE);
    xSysCtlPeripheralEnable(SYSCTL_PERIPH_AFIO);
    
    xSPinTypeI2C(I2C1SCK, PB6);
    xSPinTypeI2C(I2C1SDA, PB7);
    //xSPinTypeI2C(I2C1SCK, PB8);
    //xSPinTypeI2C(I2C1SDA, PB9);
    
    xSPinTypeI2C(I2C2SCK, PB10);
    xSPinTypeI2C(I2C2SDA, PB11);
    
    I2CSlaveInit(ulSlave, I2C_ADDR_7BIT, 0x12, I2C_GENERAL_CALL_DIS);
    I2CEnable(ulSlave);
    I2CIntEnable(ulSlave, I2C_INT_BUF | I2C_INT_EVT | I2C_INT_ERR);
    xIntEnable(xSysCtlPeripheraIntNumGet(ulSlave));
    I2CIntCallbackInit(ulSlave, I2CSlaveCallback);
    
    I2CMasterInit(ulMaster, SysCtlAPB1ClockGet(), xfalse, xtrue);
    I2CEnable(ulMaster);
    I2CMasterWriteS1(ulMaster, 0x12, 'a', xfalse);
    I2CMasterWriteS2(ulMaster, 'b', xfalse);
    I2CMasterWriteS2(ulMaster, 'c', xfalse);
    I2CMasterWriteS2(ulMaster, 'd', xfalse);
    I2CMasterReadS1(ulMaster, 0x12, ucTemp, xfalse);
    I2CMasterReadS2(ulMaster, &ucTemp[1], xfalse);
    I2CMasterReadS2(ulMaster, &ucTemp[2], xfalse);
    I2CMasterReadS2(ulMaster, &ucTemp[3], xfalse);
    I2CMasterReadS2(ulMaster, &ucTemp[4], xtrue);
}
Example #29
0
//*****************************************************************************
//
//! \brief  Wdt api wdt wakeup test.
//!
//! \return None.
//
//*****************************************************************************
static void wdt_WakeUp_test(void)
{
    unsigned long ulTemp;
    
    //
    // Set WatchDog Timer(WDT)'s Timer Interval.
    //  
    WDTimerInit(WDT_INTERVAL_2_14T);
    
    //
    // Enter WDT function of wake up
    //    
    WDTimerFunctionEnable(WDT_WAKEUP_FUNCTION | WDT_INT_FUNCTION);
    
    xIntEnable(INT_WDT);
    
    //
    // Install WDT callback function
    //
    WDTimerIntCallbackInit(WDTCallbackSW);

    //
    // Start the WDT
    //
    WDTimerEnable();
    ulTemp = xHWREG(WDT_WTCR);
    
    //
    // Enter power down mode
    //
    SysCtlSleep();
    SysCtlDelay(200);
    
    ulTemp = xHWREG(WDT_WTCR);
    TestAssert(WDT_WTCR_WTWKF == (ulTemp & WDT_WTCR_WTWKF), "WDT API error!");
}
Example #30
0
//*****************************************************************************
//
//! \brief xrtc004 test for rtc interrupt.
//!
//! \return None.
//
//*****************************************************************************
static void xrtc004Execute_Int()
{  
    RTCTimeInit();  
    
    tTime2.ulSecond = 40;     
    
    tTime2.ulMinute = 20; 
    
    tTime2.ulHour = 17; 
    
    tTime2.ulMDay = 11;  
    
    tTime2.ulMonth = 8;   
    
    tTime2.ulYear = 2011;    
    
    tTime2.ulWDay = 4;   

    tTime2.ulFormat = RTC_TIME_24H;
    
    //
    // Writes current time to corresponding register.
    //
    RTCTimeWrite(&tTime2, ulTimeAlarm[0]);
      
    //
    // Alarm interrupt after 10 seconds.
    //
    tTime2.ulSecond +=10;
    
    //
    // Writes current time to corresponding register.
    //
    RTCTimeWrite(&tTime2, ulTimeAlarm[1]);
    
    for(ulj = 0; ulj < 0xffff; ulj ++);
      
    xRTCTimeRead(&tTime1, ulTimeAlarm[1]);
    
    TestAssert(2011 == tTime1.ulYear && 8 == tTime1.ulMonth
          && 11 ==  tTime1.ulMDay && RTC_TIME_24H == tTime1.ulFormat 
          && 17 == tTime1.ulHour  && 20 == tTime1.ulMinute 
          && 50 == tTime1.ulSecond,
             "xrtc API \" RTCTimeWrite()\" or \"xRTCTimeRead()\" error!");

    //
    // Enables alarm interrupt.
    //
    RTCIntCallbackInit(RTC_INT_ALARM, xRTCACallback);
    RTCIntEnable(RTC_INT_ALARM);
    xIntEnable(INT_RTCA);
    xIntMasterEnable();
    
    RTCStart();
    
    TestAssertQBreak("a","Alarm interrupt failed!", 0xffffffff);
    
    for(ulj = 0; ulj < 0xffff; ulj ++);
       
    TestAssert(2011 == tTime1.ulYear && 8 == tTime1.ulMonth
           && 11 ==  tTime1.ulMDay && RTC_TIME_24H == tTime1.ulFormat 
           && 17 == tTime1.ulHour && 20 == tTime1.ulMinute 
           && 50 == tTime1.ulSecond ,
            "xrtc API \" RTCTimeWrite()\" or \"xRTCTimeRead()\" error!"); 
    
    //
    // Disables alarm interrupt.
    //
    RTCIntDisable(RTC_INT_ALARM);
   
    //
    // Enables seconds interrupt.
    //
    RTCIntCallbackInit(RTC_INT_TIME_TICK, xRTCSCallback);
    RTCIntEnable(RTC_INT_TIME_TICK);
    xIntEnable(INT_RTCS);
    
    RTCStart();
    
    TestAssertQBreak("b","Tick interrupt failed!",0xffffffff);
    
    //
    // Disables seconds interrupt.
    //
    RTCIntDisable(RTC_INT_TIME_TICK);   
}