/*******************************************************************************
* File Name: main.c
*
* Version: 1.2
*
* Description:
*  This file provides source code for My First PSoC Project example. The 
*  firmware blinks one LED at about every second with a PWM and another LED at 
*  a quicker rate with a software timing loop.
*
* Code Tested With:
*  1. PSoC Creator 1.0 Beta 4 Build 5810
*  2. PSoC Programmer 3.10 Beta 4 Build 616
*  3. DP8051 Keil Generic Compiler
*  4. MiniProg3 Rev *A  FW version 2.05 [2.88/1.12]
*
********************************************************************************
* Copyright (2010), Cypress Semiconductor Corporation.
********************************************************************************
* This software is owned by Cypress Semiconductor Corporation (Cypress)
* and is protected by and subject to worldwide patent protection (United
* States and foreign), United States copyright laws and international treaty
* provisions. Cypress hereby grants to licensee a personal, non-exclusive,
* non-transferable license to copy, use, modify, create derivative works of,
* and compile the Cypress Source Code and derivative works for the sole
* purpose of creating custom software in support of licensee product to be
* used only in conjunction with a Cypress integrated circuit as specified in
* the applicable agreement. Any reproduction, modification, translation,
* compilation, or representation of this software except as specified above 
* is prohibited without the express written permission of Cypress.
*
* Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH 
* REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
* Cypress reserves the right to make changes without further notice to the 
* materials described herein. Cypress does not assume any liability arising out 
* of the application or use of any product or circuit described herein. Cypress 
* does not authorize its products for use as critical components in life-support 
* systems where a malfunction or failure may reasonably be expected to result in 
* significant injury to the user. The inclusion of Cypress' product in a life-
* support systems application implies that the manufacturer assumes all risk of 
* such use and in doing so indemnifies Cypress against all charges. Use may be 
* limited by and subject to the applicable Cypress software license agreement. 
*******************************************************************************/

#include <device.h>

#define MS_DELAY 167u /* For delay, about 167ms */


/*******************************************************************************
* Function Name: main
********************************************************************************
*
* Summary:
*  The main function initializes the PWM and starts the PWM clock which will
*  blink LED1 at about once a second.  Then the main loop is entered which 
*  delays enough for LED2 to blink at a quicker rate than LED1.
*
* Parameters:
*  void
*
* Return:
*  void
*
*******************************************************************************/
void main(void)
{
    uint8 ledState = 0x00; /* Initially set LED2 to off */
    
    Clock_1_Enable(); /* Start the clock */ 
    PWM_1_Start();    /* Enable PWM      */
    
    /* Following loop does software blinking of LED2 connected to P1.7 */
    while (1)
    {

        CyDelay(MS_DELAY);   /* Have software loop blink control   */
        ledState ^= 0x01u;   /* Toggle LED2 setting between low and high */
        LED2_Write(ledState); /* Set LED2 */
    }
}


/* [] END OF FILE */
