예제 #1
0
/**************************************************************************//**
* @brief    Main function of example.
******************************************************************************/
void main(void)
{
    volatile uint32_t ui32Loop;

    //
    // Init LEDs (turned off)
    //
    bspLedInit();

    //
    // Turn on LED1 and LED4
    //
    bspLedSet(BSP_LED_1|BSP_LED_4);

    //
    // Infinite loop
    //
    while(1)
    {
        //
        // Toggle LED2 and LED3
        //
        bspLedToggle(BSP_LED_2|BSP_LED_3);

        //
        // Simple wait
        //
        for(ui32Loop = 0; ui32Loop < 500000; ui32Loop++)
        {
        }
    }
}
/*******************************************************************************
*   @fn         initMCU
*
*   @brief      Initialize MCU and board peripherals
*
*   @param      none
*
*   @return     none
*/
static void initMCU(void) {

    // Init clocks and I/O
    bspInit(BSP_SYS_CLK_8MHZ);

    // Init LEDs
    bspLedInit();

    // Init buttons
    bspKeyInit(BSP_KEY_MODE_POLL);

    // Initialize SPI interface to LCD (shared with SPI flash)
    bspIoSpiInit(BSP_FLASH_LCD_SPI, BSP_FLASH_LCD_SPI_SPD);

    // Init LCD
    lcdInit();

    // Instantiate transceiver RF SPI interface to SCLK ~ 4 MHz
    // Input parameter is clockDivider
    // SCLK frequency = SMCLK/clockDivider
    trxRfSpiInterfaceInit(2);

    // Enable global interrupt
    _BIS_SR(GIE);
}
예제 #3
0
/******************************************************************************
 * @fn          main
 *
 * @brief       Main handles all applications attached to the menu system
 *
 * input parameters
 *
 * output parameters
 *
 *@return
 */
void main( void )
{
   
  // Init clocks and I/O 
  bspInit(BSP_SYS_CLK_16MHZ);
  
  // Init leds 
  bspLedInit(); 

  // Init Buttons
  bspKeyInit(BSP_KEY_MODE_POLL);
  
  // Initialize SPI interface to LCD (shared with SPI flash)
  bspIoSpiInit(BSP_FLASH_LCD_SPI, BSP_FLASH_LCD_SPI_SPD);  

  /* Init Buttons */
  bspKeyInit(BSP_KEY_MODE_ISR);
  bspKeyIntEnable(BSP_KEY_ALL);
  /* Init LCD and issue a welcome */
  lcdInit();
  lcdClear();
  // Instantiate tranceiver RF spi interface to SCLK ~ 4 MHz */
  //input clockDivider - SMCLK/clockDivider gives SCLK frequency
  trxRfSpiInterfaceInit(0x10);
  
  /* Welcome Screen Part */
  lcdSendBuffer(trxebWelcomeScreen);
  lcdBufferPrintString(lcdDefaultBuffer,"TEXAS",60,eLcdPage6);
  lcdBufferPrintString(lcdDefaultBuffer,"INSTRUMENTS",60,eLcdPage7);
  lcdSendBufferPart(lcdDefaultBuffer, 60,127,eLcdPage6, eLcdPage7);
  /* MCU will stay in sleep until button is pressed */
  __low_power_mode_3();
  bspKeyPushed(BSP_KEY_ALL);
  //Clear screen
  lcdBufferClear(0);

  /* Menu Driver */
  menu_t *pCurrentMenu = &mainMenu;
  uint8 menuButtonsPressed;
  menuDisplay(pCurrentMenu);
  __low_power_mode_3();
  while(1)
  {
    menuButtonsPressed = bspKeyPushed(BSP_KEY_ALL);
    switch(menuButtonsPressed)
    {
      case BSP_KEY_LEFT:
        pCurrentMenu = menuBack(pCurrentMenu);
        break;
      case BSP_KEY_RIGHT:
        pCurrentMenu = menuEnter(pCurrentMenu);
        break;
      case BSP_KEY_DOWN:
        menuDown(pCurrentMenu);
        break;
      case BSP_KEY_UP:
        menuUp(pCurrentMenu);
        break;
      default:
        break;
    }
    menuDisplay(pCurrentMenu);
    /* Enter low power mode while menu driver waits on user input */
    __low_power_mode_3();
  }
}
예제 #4
0
/***************************************************************************//**
 *   @brief      Initialize MCU and BOARD Peripherals
 *
 *	 @note 		This function initializes the following
 *	 @note 		\li \b MCU \b Clock
 *	 @note 		\li \b BSP \b keys
 *	 @note 		\li \b BSP \b LEDs
 *	 @note 		\li \b LCD display (only for TRXEB)
 *	 @note 		\li \b RF_SPI Interface
 *	 @note 		\li \b UART interface
 *	 @note 		\li \b PA_LNA controls
 *	 @note 		\li \b TIMER Bit Rate for the symbols
 *	 @note 		\li \b INTERRUPT enable service
 *******************************************************************************/
static void
initMCU(void)
{
	// Initialize clocks and I/O
	//bspInit(BSP_SYS_CLK_20MHZ);
	bspInit(BSP_SYS_CLK_24MHZ);

	// Initialize buttons
	bspKeyInit(BSP_KEY_MODE_POLL);

	// Initialize leds
	bspLedInit();

#ifdef __MSP430F5438A__
	// Initialize SPI interface to LCD (shared with SPI flash)
	bspIoSpiInit(BSP_FLASH_LCD_SPI, BSP_FLASH_LCD_SPI_SPD);

	// Initialize LCD
	lcdInit();
#endif
	// Instantiate transceiver RF SPI interface to SCLK ~ 8 MHz */
	/* Input parameter is clockDivider
	 * SCLK frequency = SMCLK/clockDivider
	 */
	//trxRfSpiInterfaceInit(2);
	trxRfSpiInterfaceInit(3);

#ifdef AT_CMD
	// Initialize the UART interface
	halUartInit();

	// Toggle UART Echo. Disabled by default. Might cause unwanted behaviour if enabled.
	// Note: Try enabling local echo on the host console instead!
	//uartDrvToggleEcho();
#endif

#ifdef __MSP430F5529__
	// remove the reset from the rf device
	RF_RESET_N_PORT_SEL &= ~RF_RESET_N_PIN;
	RF_RESET_N_PORT_DIR |= RF_RESET_N_PIN;
	RF_RESET_N_PORT_OUT |= RF_RESET_N_PIN;
#endif
#ifdef CC1190_PA_LNA
	// initialize the IO
	RF_PA_EN_PxDIR |= RF_PA_EN_PIN;
	RF_LNA_EN_PxDIR |= RF_LNA_EN_PIN;

	// configure idle
	RF_PA_EN_PxOUT &= ~RF_PA_EN_PIN;
	RF_LNA_EN_PxOUT &= ~RF_LNA_EN_PIN;
#endif

	// Init Bitrate Timer
	/* - FCC bit rate  = 1.66ms ( 600bps )
	 * - ETSI bit rate = 10 ms  ( 100bps )
	 */
	TIMER_bitrate_init();

	// Enable global interrupt
	_BIS_SR(GIE);
}