コード例 #1
0
ファイル: port_api.c プロジェクト: DanKupiniak/mbed
void port_init(port_t *obj, PortName port, int mask, PinDirection dir)
{
    obj->mask = mask;
    obj->port = port;
    obj->dir = dir;
    
    port_dir(obj, obj->dir);
}
コード例 #2
0
ファイル: port_api.c プロジェクト: akselsm/mbed
void port_init(port_t *obj, PortName port, int mask, PinDirection dir)
{
    MBED_ASSERT((uint32_t)port < GPIO_PORT_COUNT);
    
    obj->port = port;
    obj->mask = mask;

    port_dir(obj, dir);
}
コード例 #3
0
void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {
    obj->port = port;
    obj->mask = mask;   
    
    obj->reg_out = &NRF_GPIO->OUT;
    obj->reg_in  = &NRF_GPIO->IN;
    obj->reg_cnf = NRF_GPIO->PIN_CNF;
    
    port_dir(obj, dir);
}
コード例 #4
0
ファイル: port_api.c プロジェクト: mbedNoobNinja/mbed
void port_init(port_t *obj, PortName port, int mask, PinDirection dir)
{
    obj->port = port;
    obj->mask = mask;

    // The function is set per pin: reuse gpio logic
    for (uint32_t i = 0; i < 32; i++) {
        if (obj->mask & (1 << i)) {
            gpio_set(port_pin(obj->port, i));
        }
    }

    port_dir(obj, dir);
}
コード例 #5
0
ファイル: port_api.c プロジェクト: Archcady/mbed-os
void port_init(port_t *obj, PortName port, int mask, PinDirection dir)
{
    obj->port      = port;
    obj->mask      = mask;
    obj->direction = dir;

    uint32_t i;
    obj->direction = dir;
    for (i = 0; i < GPIO_PIN_MAX; i++) {
        if (obj->mask & (1 << i)) {
            gpio_set(port_pin(port, i));
        }
    }
    
    port_dir(obj, dir);
}
コード例 #6
0
ファイル: port_api.c プロジェクト: 23chrischen/mbed
void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {
    uint32_t port_index = (uint32_t)port;

    // Enable GPIO clock
    uint32_t gpio_add = Set_GPIO_Clock(port_index);
    GPIO_TypeDef *gpio = (GPIO_TypeDef *)gpio_add;

    // Fill PORT object structure for future use
    obj->port      = port;
    obj->mask      = mask;
    obj->direction = dir;  
    obj->reg_in    = &gpio->IDR;
    obj->reg_out   = &gpio->ODR;  

    port_dir(obj, dir);
}
コード例 #7
0
ファイル: port_api.c プロジェクト: 1deus/tmk_keyboard
void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {
    obj->port = port;
    obj->mask = mask;
    
    LPC_GPIO->MASK[port] = ~mask;
    
    obj->reg_mpin = &LPC_GPIO->MPIN[port];
    obj->reg_dir = &LPC_GPIO->DIR[port];
    
    uint32_t i;
    // The function is set per pin: reuse gpio logic
    for (i=0; i<32; i++) {
        if (obj->mask & (1<<i)) {
            gpio_set(port_pin(obj->port, i));
        }
    }
    
    port_dir(obj, dir);
}
コード例 #8
0
ファイル: port_api.c プロジェクト: 1deus/tmk_keyboard
void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {
    obj->port = port;
    obj->mask = mask;
    
    LPC_GPIO_TypeDef *port_reg = ((LPC_GPIO_TypeDef *) (LPC_GPIO0_BASE + (port * 0x10000)));
    
    obj->reg_data  = &port_reg->DATA;
    obj->reg_dir = &port_reg->DIR;
    
    uint32_t i;
    // The function is set per pin: reuse gpio logic
    for (i=0; i<12; i++) {
        if (obj->mask & (1<<i)) {
            gpio_set(port_pin(obj->port, i));
        }
    }
    
    port_dir(obj, dir);
}
コード例 #9
0
ファイル: port_api.c プロジェクト: 23chrischen/mbed
void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {
    obj->port = port;
    obj->mask = mask;

    GPIO_Type *reg = (GPIO_Type *)(PTA_BASE + port * 0x40);

    obj->reg_out = &reg->PDOR;
    obj->reg_in  = &reg->PDIR;
    obj->reg_dir = &reg->PDDR;

    uint32_t i;
    // The function is set per pin: reuse gpio logic
    for (i=0; i<32; i++) {
        if (obj->mask & (1<<i)) {
            gpio_set(port_pin(obj->port, i));
        }
    }

    port_dir(obj, dir);
}
コード例 #10
0
ファイル: port_api.c プロジェクト: AlessandroA/mbed
void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {
    obj->port = port;
    obj->mask = mask;

    CMSDK_GPIO_TypeDef *port_reg =
        (CMSDK_GPIO_TypeDef *)(CMSDK_GPIO0_BASE + ((int)port * 0x10));

    obj->reg_in = &port_reg->DATAOUT;
    obj->reg_dir = &port_reg->OUTENABLESET;
    obj->reg_dirclr = &port_reg->OUTENABLECLR;

    uint32_t i;
    // The function is set per pin: reuse gpio logic
    for (i=0; i<16; i++) {
        if (obj->mask & (1<<i)) {
            gpio_set(port_pin(obj->port, i));
        }
    }

    port_dir(obj, dir);
}
コード例 #11
0
ファイル: port_api.c プロジェクト: nickmolo/ECE477
void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {
    obj->port = port;
    obj->mask = mask;
    
    LPC_GPIO_TypeDef *port_reg = (LPC_GPIO_TypeDef *)(LPC_GPIO0_BASE + ((int)port * 0x20));
    
    port_reg->MASK = ~mask;
    
    obj->reg_out = &port_reg->PIN;
    obj->reg_in  = &port_reg->PIN;
    obj->reg_dir  = &port_reg->DIR;
    
    uint32_t i;
    // The function is set per pin: reuse gpio logic
    for (i=0; i<32; i++) {
        if (obj->mask & (1<<i)) {
            gpio_set(port_pin(obj->port, i));
        }
    }
    
    port_dir(obj, dir);
}
コード例 #12
0
ファイル: port_api.c プロジェクト: 1deus/tmk_keyboard
void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {
    obj->port = port;
    obj->mask = mask;
    
    LPC_GPIO_T *port_reg = (LPC_GPIO_T *)(LPC_GPIO_PORT_BASE);
    
    // Do not use masking, because it prevents the use of the unmasked pins
    // port_reg->MASK[port] = ~mask;
    
    obj->reg_out = &port_reg->PIN[port];
    obj->reg_in  = &port_reg->PIN[port];
    obj->reg_dir = &port_reg->DIR[port];
	
    uint32_t i;
    // The function is set per pin: reuse gpio logic
    for (i=0; i<32; i++) {
        if (obj->mask & (1<<i)) {
            gpio_set(port_pin(obj->port, i));
        }
    }

    port_dir(obj, dir);
}
コード例 #13
0
ファイル: port_api.c プロジェクト: AlessandroA/mbed
void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {
    obj->port = port;
    obj->mask = mask;
    
    LPC_GPIO_TypeDef *port_reg = (LPC_GPIO_TypeDef *)(LPC_GPIO0_BASE + ((int)port * 0x20));
    
    // Do not use masking, because it prevents the use of the unmasked pins
    // port_reg->FIOMASK = ~mask;
    
    obj->reg_out = &port_reg->FIOPIN;
    obj->reg_in  = &port_reg->FIOPIN;
    obj->reg_dir  = &port_reg->FIODIR;
    
    uint32_t i;
    // The function is set per pin: reuse gpio logic
    for (i=0; i<32; i++) {
        if (obj->mask & (1<<i)) {
            gpio_set(port_pin(obj->port, i));
        }
    }
    
    port_dir(obj, dir);
}