Пример #1
0
/*
*********************************************************************************************************
*                                          App_TaskStart()
*
* Description : This is an example of a startup task.  As mentioned in the book's text, you MUST
*               initialize the ticker only once multitasking has started.
*
* Argument(s) : p_arg   is the argument passed to 'App_TaskStart()' by 'OSTaskCreateExt()'.
*
* Return(s)   : none.
*
* Caller(s)   : This is a task.
*
* Notes       : (1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
*                   used.  The compiler should not generate any code for this statement.
*********************************************************************************************************
*/
static  void  App_TaskStart (void *p_arg)
{   
    (void)p_arg;                                                /* See Note #1                                              */

    BSP_Init();                                                 /* Initialize BSP functions                                 */

    OS_CPU_SysTickInit();                                       /* Initialize the SysTick                                   */

#if (OS_TASK_STAT_EN > 0)
    OSStatInit();                                               /* Determine CPU capacity                                   */
#endif

    MEM_Init();

    End_Init();

    GUI_Init(); 

    TIME_Init();

    MENU_Init();

    App_EventCreate();                                          /* Create application events                                */

    App_TaskCreate();                                           /* Create application tasks                                 */
        
    while (DEF_TRUE) {                                          /* Task body, always written as an infinite loop            */
        beep();

        OSTimeDlyHMSM(0, 0, 0, 50);
    }
}
Пример #2
0
/***************************************************************************//**
 * @brief Main function.
 *
 * @return None.
*******************************************************************************/
void main(void)
{
    /* Initialize RDKRL78G14. */
    RDKRL78G14_Init();
    
    /* Enable interrupts. */
    __enable_interrupt();
        
    /* Initialize timer. */
    TIME_Init();
    
    /* Initialize the ST7579 Display. */
    ST7579_Init();
    
    /* Initialize AD7476. */
    if(AD74xx_Init(AD7476) == 0)
    {
        ADI_Component("AD7476 OK");
    }
    else
    {
        ADI_Component("AD7476 Error");
    }
    ST7579_String(2, 0, "Conversion", 0);
    ST7579_String(3, 0, "Result A0:", 0);	
    ST7579_String(5, 0, "HEX:", 0);
    ST7579_String(6, 0, "DEC:", 0);
    ST7579_String(7, 0, "VOLT:", 0);
    
    while(1)
    {
        /* Power up the device.*/
        AD74xx_PowerUp();
        
        /* Acquire one sample.*/
        sample = AD74xx_GetRegisterValue();
  	
        /* Power down device while other tasks are being executed. */
        AD74xx_PowerDown();
        
        /* Convert the sample in voltage. */
        voltage = AD74xx_ConvertToVolts(sample, 3.3); 
        
        /* Display the value. */
        ST7579_String(5, 36, "      ", 0);
        ST7579_HexNumber(5, 36, sample, 0);
        ST7579_String(6, 36, "      ", 0);
        ST7579_Number(6, 36, sample, 0);
        ST7579_String(7, 36, "      ", 0);
        ST7579_FloatNumber(7, 36, voltage, 2, 0);
        
        /* Wait for 300 milliseconds. */
        TIME_DelayMs(300);
    }
}
Пример #3
0
int main(void)
{
  TIME_Init();
  FVM_Init();
  LCD_Init();
  LCD_SelectBuffer(LCD_Screen);
  LCD_SetDrawMode(0,1);
  LCD_SetFont((unsigned char *)Font_Ascii_Medium);
  //LCD_String(0,1,"the quick brown fox jumps over the lazy dog");
  LCD_String(0,1,"THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG");
  LCD_LowLevelRefresh(0);
  
  UI_DrawBottomMenu(&MainMenu);
  
  while(1)
  {
  }
  
}
Пример #4
0
/***************************************************************************//**
 * @brief Main function.
 *
 * @return None.
*******************************************************************************/
void main(void)
{
    
    /* Initialize RDKRL78G14. */
    RDKRL78G14_Init();
    
    /* Enable interrupts. */
    __enable_interrupt();
        
    /* Initialize timer. */
    TIME_Init();
    
    /* Initialize the ST7579 Display. */
    ST7579_Init();
    
    /* Init ADP5589 device. */
    if(ADP5589_Init() == 0)
    {
        ADI_Component("ADP5589 OK");
    }
    else
    {
        ADI_Component("ADP5589 Error");
    }
    
    /* Init ADP5589 as keyboard decoder on J1 connector. */
    ADP5589_InitKey(PMOD_IOXP_J1);	   
    
    /* Init PWM on pin R3. */
    ADP5589_InitPwm();		            
    ADP5589_SetPwm(1, 1);
    
    ST7579_String(3, 10, "Press 1A", 0);
    ST7579_String(4, 10, "to unlock", 0);
    
    /* Lock keypad, press 1A to unlock. */
    ADP5589_KeyLock(0x25, 0x04, PMOD_IOXP_J1);
    ST7579_String(2, 10, "         ", 0);
    ST7579_String(3, 10, "         ", 0);
    ST7579_String(7 ,0, "R3: 0.5Mhz PWM  ", 0);
    ADP5589_GpioDirection(ADP5589_ADR_GPIO_DIRECTION_A, 0xFE);
    while(1)
    {
        /* Read the value of FIFO1 register. */
        val = ADP5589_GetRegisterValue(ADP5589_ADR_FIFO1);
        
        /* Decode the last key pressed. */
        keyP = ADP5589_KeyDecode(val, ADP5589_EVENT_KEY_PRESSED, PMOD_IOXP_J1);
        
        /* Decode the last key released. */
        keyR = ADP5589_KeyDecode(val, ADP5589_EVENT_KEY_RELEASED, PMOD_IOXP_J1);
        
        /* Display the last key pressed. */
        ST7579_String(2, 0, "Last Pressed", 0);
        ST7579_String(3, 0, "Key: ", 0);
        if (keyP != 'x')
        {
            ST7579_Char(3, 30, keyP, 0);
        }
        
        /* Display the last key released. */
        ST7579_String(4, 0, "Last Released", 0);
        ST7579_String(5, 0, "Key: ", 0);
        if (keyR != 'x')
        {
            ST7579_Char(5, 30, keyR, 0);
        }
        
        /* Read and display the status of R0 pin. */
        if(ADP5589_GetPinState(ADP5589_ADR_GPI_STATUS_A) & 0x01)
        {
            ST7579_String(6, 0, "R0 is HIGH", 0);
        }
        else 
        {
            ST7579_String(6, 0, "R0 is LOW  ", 0);
        }
    }   
}
Пример #5
0
/***************************************************************************//**
 * @brief Main function.
 *
 * @return None.
*******************************************************************************/
void main(void)
{
    /* Set pin 7 and pin 8 (J11 connector) as input, to avoid the output pins
    of the Pmod ACL to be connected to an output pin of the microcontroller. */
    PM7 |= (1 << 6);    // P76 (PMOD-IRQA)
    PM7 |= (1 << 7);    // P77 (PMOD-IRQB)
    
    /* Initialize RDKRL78G14. */
    RDKRL78G14_Init();
    
    /* Enable interrupts. */
    __enable_interrupt();
        
    /* Initialize timer. */
    TIME_Init();
    
    /* Initialize the ST7579 Display. */
    ST7579_Init();
    
    /* Initialize ADXL345. */
    if(ADXL345_Init(ADXL345_SPI_COMM) == 0)
    {
        ADI_Component("ADXL345 OK");
    }
    else
    {
        ADI_Component("ADXL345 Error");
    }
    ADXL345_SetTapDetection(ADXL345_SINGLE_TAP |
                            ADXL345_DOUBLE_TAP, // Tap type.
                            ADXL345_TAP_Z_EN,   // Axis control.
                            0x10,               // Tap duration.
                            0x10,               // Tap latency.
                            0x40,               // Tap window. 
                            0x10,               // Tap threshold.
                            0x00);              // Interrupt Pin.
    ADXL345_SetFreeFallDetection(0x01,  // Free-fall detection enabled.
                                 0x05,  // Free-fall threshold.
                                 0x14,  // Time value for free-fall detection.
                                 0x00); // Interrupt Pin.
    
    /* Set the range and the resolution. */
    ADXL345_SetRangeResolution(ADXL345_RANGE_PM_4G, ADXL345_FULL_RES);
    ADXL345_SetPowerMode(0x1);          // Measure mode.
    while(1)
    {
        /* Read and display the output data of each axis. */ 
        ADXL345_GetGxyz(&x, &y, &z);
        ST7579_String(2, 0, "X data:      [g]", 0); 
        ST7579_FloatNumber(2, 42, x, 3, 0); 
        ST7579_String(3, 0, "Y data:      [g]", 0); 
        ST7579_FloatNumber(3, 42, y, 3, 0); 
        ST7579_String(4, 0, "Z data:      [g]", 0); 
        ST7579_FloatNumber(4, 42, z, 3, 0);
        intSource = ADXL345_GetRegisterValue(ADXL345_INT_SOURCE);
        if((intSource & ADXL345_SINGLE_TAP) != 0)
        {
            ST7579_String(5, 0, "Single Tap", 0);
        }
        if((intSource & ADXL345_DOUBLE_TAP) != 0)
        {
            ST7579_String(6, 0, "Double Tap", 0);
        }
        if((intSource & ADXL345_FREE_FALL) != 0)
        {
            ST7579_String(7, 0, "Free-Fall", 0);
        }
        TIME_DelayMs(100);
    }
}