Пример #1
0
//int main_app(IN u16 argc, IN u8 *argv[])
void main(void)
{
    gpio_t gpio_led;
    gpio_t gpio_btn;

    // Init LED control pin
    gpio_init(&gpio_led, GPIO_LED_PIN);
    gpio_dir(&gpio_led, PIN_OUTPUT);    // Direction: Output
    gpio_mode(&gpio_led, PullNone);     // No pull

    // Initial Push Button pin
    gpio_init(&gpio_btn, GPIO_PUSHBT_PIN);
    gpio_dir(&gpio_btn, PIN_INPUT);     // Direction: Input
    gpio_mode(&gpio_btn, PullUp);       // Pull-High

    while(1){
        if (gpio_read(&gpio_btn)) {
            // turn off LED
            gpio_write(&gpio_led, 0);
        }
        else {
            // turn on LED
            gpio_write(&gpio_led, 1);
        }
    }
}
Пример #2
0
/*******************************************************************************
**函    数: IIC_InitPort
**功    能: IIC接口初始化
**参    数: void
**返    回: void
*******************************************************************************/
void IIC_InitPort(void)
{                        

    
    printf("\n BL5372 IIC Port Init");
    // Init IIC_1_SCL_PIN
      gpio_init(&gpio_iic_1_scl, IIC_1_SCL_PIN);
      gpio_dir(&gpio_iic_1_scl, PIN_OUTPUT);    // Direction: Output
      gpio_mode(&gpio_iic_1_scl, PullNone);     // No pull
      
      gpio_write(&gpio_iic_1_scl, 1);


      // Init IIC_1_SDA_PIN
      gpio_init(&gpio_iic_1_sda, IIC_1_SDA_PIN);
      gpio_dir(&gpio_iic_1_sda, PIN_OUTPUT);    // Direction: Output
      gpio_mode(&gpio_iic_1_sda, PullNone);     // No pull
    
      gpio_write(&gpio_iic_1_sda, 1);
      
      SDA_OUT();
      SCL_OUT();
      SCL1;
      SDA1;
}
Пример #3
0
	void DispatcherPrivate::set_receive_input(SYNCHRONIZATION_CHANNEL* channel, PinName pin, PinMode pull, ReceiveChannelMode rcmode)
	{
		if (channel->data->state->recv.mode != ReceiveChannelModeNone)
			gpio_irq_free(&channel->data->state->recv.gpio_irq);

		channel->data->state->recv.mode = rcmode;
		gpio_init_in(&channel->data->state->recv.gpio, pin);
		gpio_irq_init(&channel->data->state->recv.gpio_irq, pin, (&DispatcherPrivate::channel_irq_handler), (uint32_t)channel);
		gpio_mode(&channel->data->state->recv.gpio, pull);
		gpio_irq_event evt = IRQ_NONE;
		switch (rcmode)
		{
		case ReceiveChannelInterruptRise:
			evt = IRQ_RISE;
			break;

		case ReceiveChannelInterruptFall:
			evt = IRQ_FALL;
			break;

		case ReceiveChannelModeNone:
			break;
		}

		if (evt != IRQ_NONE)
		{
			gpio_irq_set(&channel->data->state->recv.gpio_irq, evt, 1);
			gpio_irq_enable(&channel->data->state->recv.gpio_irq);
		}

	}
Пример #4
0
int is_update_image_enable(gpio_t *gpio_uart_update_eable)
{

	HAL_GPIO_PIN  GPIO_Pin;
    u32 active_state;
//	gpio_t gpio_uart_update_eable;
	int ret = 0;
#if 0
    GPIO_Pin.pin_name = 0xC4;
	//low active
	GPIO_Pin.pin_mode = DIN_PULL_HIGH;
	active_state = GPIO_PIN_LOW;
	
    HAL_GPIO_Init(&GPIO_Pin);
	
    if (HAL_GPIO_ReadPin(&GPIO_Pin) == active_state)
    	ret = 0;
	else
		ret = 1;
	
   	HAL_GPIO_DeInit(&GPIO_Pin);
#else
	gpio_init(gpio_uart_update_eable, PIN_NAME);
	gpio_dir(gpio_uart_update_eable, PIN_INPUT);     // Direction: Input
	gpio_mode(gpio_uart_update_eable, PullUp);       // Pull-High
//	ret = gpio_read(&gpio_uart_update_eable);
#endif

	return ret;
}
Пример #5
0
SPIFram::SPIFram(PinName cs) {
  gpio_init(&csPin, cs);
  gpio_dir(&csPin, PIN_OUTPUT);
  gpio_mode(&csPin, PullNone);
  gpio_write(&csPin, 1);
  CHIP_DESELECT
}
Пример #6
0
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
void main(void)
{

	gpio_init(&gpio_reset, GPIO_RESET);
	gpio_mode(&gpio_reset, PullUp);
	gpio_dir(&gpio_reset, PIN_OUTPUT);

	gpio_init(&gpio_cs, GPIO_CS);
	gpio_mode(&gpio_cs, PullUp);
	gpio_dir(&gpio_cs, PIN_OUTPUT);
	
    spi_init(&spi0_master, SPI0_MOSI, SPI0_MISO, SPI0_SCLK, SPI0_CS);
	spi_format(&spi0_master, 8, 3, 0);
	spi_frequency(&spi0_master, 800000);
	
	do
	{
		SPI_PL7223_Reset();
		SPI_PL7223_Read(&Read_Data_PL7223[0],0x3860,1);//DSP version :20130322 ver02, 0x3860=0x04
                                                                 //DSP version :20141009 ver01, 0x3860=0x03
	}while( ((Read_Data_PL7223[0]) != 0x04) && ((Read_Data_PL7223[0]) != 0x03) );
	
	SPI_PL7223_DELY(120000);
	SPI_PL7223_RelayControl(0);		// OFF
	SPI_PL7223_DELY(120000);
	
	do{
	// As below is read DSP buffer process every time (144 byte)
	SPI__PL7223_Read_Status();
	SPI_PL7223_Read(&Read_Data_PL7223[0],0x3000,144); // 0x3000~0x308F     //144 byte
	SPI_PL7223_Read(&Read_Data_PL7223[144],0x3809,2); // Sample_cnt0
	SPI_PL7223_Masurement();
	
	SPI_PL7223_DELY(600000);
	SPI_PL7223_RelayControl(1);		// ON
	SPI_PL7223_DELY(120000);
	
	SPI__PL7223_Read_Status();
	SPI_PL7223_Read(&Read_Data_PL7223[0],0x3000,144); // 0x3000~0x308F     //144 byte
	SPI_PL7223_Read(&Read_Data_PL7223[144],0x3809,2); // Sample_cnt0
	SPI_PL7223_Masurement();
	
	SPI_PL7223_DELY(600000);
	SPI_PL7223_RelayControl(0);		// OFF
	SPI_PL7223_DELY(120000);
	}while(1);
}
Пример #7
0
static inline void _gpio_init_in(gpio_t* gpio, PinName pin, PinMode mode)
{
    gpio_init(gpio, pin);
    if (pin != NC) {
        gpio_dir(gpio, PIN_INPUT);
        gpio_mode(gpio, mode);
    }
}
Пример #8
0
static inline void _gpio_init_out(gpio_t* gpio, PinName pin, PinMode mode, int value)
{
    gpio_init(gpio, pin);
    if (pin != NC) {
        gpio_write(gpio, value);
        gpio_dir(gpio, PIN_OUTPUT);
        gpio_mode(gpio, mode);
    }
}
Пример #9
0
void uartadapter_gpio_init()
{
    	gpio_init(&gpio_led, UA_GPIO_IRQ_PIN);
    	gpio_dir(&gpio_led, PIN_INPUT);    // Direction: Output
    	gpio_mode(&gpio_led, PullNone);     // No pull
    	
    	gpio_irq_init(&gpio_btn, UA_GPIO_IRQ_PIN, uartadapter_gpio_irq, (uint32_t)(&gpio_led));
    	gpio_irq_set(&gpio_btn, IRQ_FALL, 1);   // Falling Edge Trigger
    	gpio_irq_enable(&gpio_btn);
}
Пример #10
0
static inline void _gpio_init_out(gpio_t* gpio, PinName pin, PinMode mode, int value)
{
    gpio_init(gpio, pin);
    if (pin != NC) {
        gpio_write(gpio, value);
        if(mode == OpenDrain)
            gpio_dir(gpio, PIN_OUTPUT_OD);
        else{
            gpio_dir(gpio, PIN_OUTPUT);
        }
        gpio_mode(gpio, mode);
    }
}
Пример #11
0
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
void main(void)
{
    gpio_irq_t gpio_btn;

    // Init LED control pin
    gpio_init(&gpio_led, GPIO_LED_PIN);
    gpio_dir(&gpio_led, PIN_OUTPUT);    // Direction: Output
    gpio_mode(&gpio_led, PullNone);     // No pull

    // Initial Push Button pin as interrupt source
    gpio_irq_init(&gpio_btn, GPIO_IRQ_PIN, gpio_demo_irq_handler, (uint32_t)(&gpio_led));
    gpio_irq_set(&gpio_btn, IRQ_FALL, 1);   // Falling Edge Trigger
    gpio_irq_enable(&gpio_btn);

    led_ctrl = 1;
    gpio_write(&gpio_led, led_ctrl);

    while(1);
}
Пример #12
0
void main(void)
{
    gpio_t gpio_led;
    gpio_irq_t gpio_btn;

    // Init LED control pin
    gpio_init(&gpio_led, GPIO_LED_PIN);
    gpio_dir(&gpio_led, PIN_OUTPUT);    // Direction: Output
    gpio_mode(&gpio_led, PullNone);     // No pull

    // Initial Push Button pin as interrupt source
    gpio_irq_init(&gpio_btn, GPIO_IRQ_PIN, gpio_demo_irq_handler, (uint32_t)(&gpio_led));
    gpio_irq_set(&gpio_btn, IRQ_FALL, 1);   // Falling Edge Trigger
    gpio_irq_enable(&gpio_btn);

    // led on means system is in run mode
    gpio_write(&gpio_led, 1);
    printf("\r\nPush button at PC_4 to enter deep sleep\r\n");

    while(1);
}
Пример #13
0
void gpio_demo_irq_handler (uint32_t id, gpio_irq_event event)
{
    gpio_t *gpio_led;
    gpio_led = (gpio_t *)id;

    printf("Enter deep sleep...Wait 10s or give rising edge at PB_1 to wakeup system.\r\n\r\n");

    // turn off led
    gpio_write(gpio_led, 0);

    // turn off log uart
    sys_log_uart_off();

    // initialize wakeup pin at PB_1
    gpio_t gpio_wake;
    gpio_init(&gpio_wake, GPIO_WAKE_PIN);
    gpio_dir(&gpio_wake, PIN_INPUT);
    gpio_mode(&gpio_wake, PullDown);

    // enter deep sleep
    deepsleep_ex(DSLEEP_WAKEUP_BY_GPIO | DSLEEP_WAKEUP_BY_TIMER, 10000);
}
Пример #14
0
void InterruptIn::mode(PinMode pull) {
    gpio_mode(&gpio, pull);
}
Пример #15
0
void InterruptIn::mode(PinMode pull) {
    core_util_critical_section_enter();
    gpio_mode(&gpio, pull);
    core_util_critical_section_exit();
}
Пример #16
0
void pinMode( uint32_t ulPin, uint32_t ulMode)
{
    void *pGpio_t;

    if ( ulPin < 0 || ulPin > TOTAL_GPIO_PIN_NUM )
    {
        return;
    }

    if ( (g_APinDescription[ulPin].ulPinType == PIO_GPIO || g_APinDescription[ulPin].ulPinType == PIO_GPIO_IRQ) 
            && g_APinDescription[ulPin].ulPinMode == ulMode)
    {
        return;
    }

    if ( g_APinDescription[ulPin].ulPinType == PIO_PWM ) {
        pinRemoveMode(ulPin);
    }

    if ( g_APinDescription[ulPin].ulPinType == PIO_GPIO && 
            (ulMode == INPUT_IRQ_FALL || ulMode == INPUT_IRQ_RISE) ) {
        // requst type from gpio_t to gpio_irq_t
        pinRemoveMode(ulPin);
    }

    if ( g_APinDescription[ulPin].ulPinType == PIO_GPIO_IRQ && 
            (ulMode == INPUT || ulMode == OUTPUT || ulMode == INPUT_PULLUP || ulMode == INPUT_PULLNONE || ulMode == OUTPUT_OPENDRAIN) ) {
        // requst type from gpio_irq_t to gpio_t
        pinRemoveMode(ulPin);
    }

    if ( g_APinDescription[ulPin].ulPinType == NOT_INITIAL ) {
        if (ulMode == INPUT_IRQ_FALL || ulMode == INPUT_IRQ_RISE) {
            gpio_pin_struct[ulPin] = malloc ( sizeof(gpio_irq_t) );
            pGpio_t = gpio_pin_struct[ulPin];
            gpio_irq_init( pGpio_t, g_APinDescription[ulPin].pinname, gpioIrqHandler, ulPin);
            g_APinDescription[ulPin].ulPinType = PIO_GPIO_IRQ;
        } else {
            gpio_pin_struct[ulPin] = malloc ( sizeof(gpio_t) );
            pGpio_t = gpio_pin_struct[ulPin];
            gpio_init( pGpio_t, g_APinDescription[ulPin].pinname );
            g_APinDescription[ulPin].ulPinType = PIO_GPIO;
        }
        g_APinDescription[ulPin].ulPinMode = ulMode;
    } else {
        pGpio_t = gpio_pin_struct[ulPin];
    }

    switch ( ulMode )
    {
        case INPUT:
            gpio_dir( (gpio_t *)pGpio_t, PIN_INPUT );
            gpio_mode( (gpio_t *)pGpio_t, PullDown );
            break;

        case INPUT_PULLNONE:
            gpio_dir( (gpio_t *)pGpio_t, PIN_INPUT );
            gpio_mode( (gpio_t *)pGpio_t, PullNone );
            break;

        case INPUT_PULLUP:
            gpio_dir( (gpio_t *)pGpio_t, PIN_INPUT );
            gpio_mode( (gpio_t *)pGpio_t, PullUp );
            break;

        case OUTPUT:
            gpio_dir( (gpio_t *)pGpio_t, PIN_OUTPUT );
            gpio_mode( (gpio_t *)pGpio_t, PullNone );
            break;

        case OUTPUT_OPENDRAIN:
            gpio_dir( (gpio_t *)pGpio_t, PIN_OUTPUT );
            gpio_mode( (gpio_t *)pGpio_t, OpenDrain );
            break;

        case INPUT_IRQ_FALL:
            gpio_irq_set( (gpio_irq_t *)pGpio_t, IRQ_FALL, 1 );
            gpio_irq_enable( (gpio_irq_t *)pGpio_t );
            break;

        case INPUT_IRQ_RISE:
            gpio_irq_set( (gpio_irq_t *)pGpio_t, IRQ_RISE, 1 );
            gpio_irq_enable( (gpio_irq_t *)pGpio_t );
            break;

        case INPUT_IRQ_LOW:
            gpio_irq_set( (gpio_irq_t *)pGpio_t, IRQ_LOW, 1 );
            gpio_irq_enable( (gpio_irq_t *)pGpio_t );
            break;

        case INPUT_IRQ_HIGH:
            gpio_irq_set( (gpio_irq_t *)pGpio_t, IRQ_HIGH, 1 );
            gpio_irq_enable( (gpio_irq_t *)pGpio_t );
            break;

        default:
            break ;
    }
}
Пример #17
0
void gpio_init_out_ex(gpio_t* gpio, PinName pin, int value){
    gpio_init(gpio, pin);
    gpio_write(gpio, value);
    gpio_mode(gpio, Output);
    gpio_write(gpio, value);
}
Пример #18
0
void gpio_init_out(gpio_t* gpio, PinName pin){
    gpio_init(gpio, pin);
    gpio_mode(gpio, Output);
}
Пример #19
0
void gpio_init_in_ex(gpio_t* gpio, PinName pin, PinMode mode){
    gpio_init(gpio, pin);
    gpio_mode(gpio, mode);
}
Пример #20
0
// the following set of functions are generic and are implemented in the common gpio.c file
void gpio_init_in(gpio_t* gpio, PinName pin){
    gpio_init(gpio, pin);
    gpio_mode(gpio, Input);
}