#include <stdio.h>
#include "OB90A64M1.h"
#include "gpio.h"
#include "uart.h"

void Dealay(uint32_t nCount)
{
    while(nCount--);
}

int main(void)
{
    uint32_t nValue;
    OB_GPIO0->MODE = 0x00;
    OB_GPIO1->MODE = 0x00;
    OB_GPIO2->MODE = 0x00;
    OB_GPIO3->MODE = 0x00;
    OB_GPIO0->DATA = 0xFFFF;
    OB_GPIO1->DATA = 0xFFFF;
    OB_GPIO2->DATA = 0xFFFF;
    OB_GPIO3->DATA = 0xFFFF;

    SystemCoreClockUpdate();

    GPIO_SetPinMFType(OB_GPIO2, GPIO_PIN0, GPIO_MF_UART1_RX);
    GPIO_SetPinMFType(OB_GPIO2, GPIO_PIN1, GPIO_MF_UART1_TX);
    UART_Open(OB_UART1, 19200);

    //----------------P0-----------------------
    printf("\n\r\n\r P0 = ");
    OB_GPIO0->MODE = 0x00; //IO mode = pull up
//    nValue = 0x01;
    while(1)
    {
//        printf(" ,0x%02x", nValue);
//        OB_GPIO2->DATA = nValue;
			  OB_GPIO0->DATA = 0x00;
        Dealay(50000);
				OB_GPIO0->DATA = 0x04;
			  Dealay(50000);
//        if (nValue == 0x0010)
//            break;
//        nValue = nValue << 0x01;
//				nValue++;
			}
       //----------------P1-----------------------
//    printf("\n\r\n\r P1 = ");
//    OB_GPIO1->MODE = 0x00; //IO mode = pull up
//    nValue = 0x01;
//    while(1)
//    {
//        printf(" ,0x%02x", nValue);
//        OB_GPIO1->DATA = nValue;
//        Dealay(50000);
//        if (nValue == 0x8000)
//            break;
//        nValue = nValue << 0x01;
//    }
    //----------------P2-----------------------
//    printf("\n\r\n\r P2 = ");
//    OB_GPIO2->MODE = 0x00; //IO mode = pull up
//    GPIO_SetPinMFType(OB_GPIO2, GPIO_PIN0, GPIO_MF_UART1_RX);
//    GPIO_SetPinMFType(OB_GPIO2, GPIO_PIN1, GPIO_MF_UART1_TX);
////    nValue = 0x01;
//    while(1)
//    {
////        printf(" ,0x%02x", nValue);
////        OB_GPIO2->DATA = nValue;
//			  OB_GPIO2->DATA = 0x00;
//        Dealay(50000);
//				OB_GPIO2->DATA = 0xFF;
//        if (nValue == 0x0010)
//            break;
////        nValue = nValue << 0x01;
//				nValue++;
//    }
    //----------------P3-----------------------
//    printf("\n\r\n\r P3 = ");
//    OB_GPIO0->MODE = 0x00; //IO mode = pull up
//    nValue = 0x01;
//    while(1)
//    {
//        printf(" ,0x%02x", nValue);
//        OB_GPIO3->DATA = nValue;
//        Dealay(50000);
//        if (nValue == 0x8000)
//            break;
//        nValue = nValue << 0x01;
//    }
    while(1);
}
