Exemplo n.º 1
0
void Port_RefreshPortDirection( void )
{
	VALIDATE_STATE_INIT(PORT_REFRESH_PORT_DIRECTION_ID);
	for (uint16 i = 0; i < PORT_NUMBER_OF_PINS; i++) {
		if (!(_configPtr->pins[i].conf & PORT_DIRECTION_CHANGEABLE)) {
			Port_RefreshPin(i);
		}
	}
	return;
}
Exemplo n.º 2
0
/** !req SWS_Port_00066 */
void Port_RefreshPortDirection(void) {
    VALIDATE_STATE_INIT(PORT_REFRESH_PORT_DIRECTION_ID);
    uint8 pinNr = 0;
    imask_t state;
    Irq_Save(state);
    for (uint16 i = 0; Port_configPtr->pinConfig[i].PortPinId != PORT_INVALID_REG; i++) {
        pinNr = Port_configPtr->pinConfig[i].PortPinId;
        SET_PORT_REGISTER(pinNr, PM, Port_configPtr->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PIBC, Port_configPtr->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    }
    Irq_Restore(state);
}
Exemplo n.º 3
0
void Port_SetPinMode(Port_PinType Pin, Port_PinModeType Mode) {
	VALIDATE_STATE_INIT(PORT_SET_PIN_MODE_ID);
	VALIDATE_PARAM_PIN(Pin, PORT_SET_PIN_MODE_ID);

	uint8 port = GET_PIN_PORT(Pin);
	uint8 pin = GET_PIN_PIN(Pin);
	uint32 mask = GET_PIN_MASK(Pin);

    Port_Base[port]->FUN &= ~mask;
    Port_Base[port]->FUN |= ((Mode & 1) << pin);
    return;
}
Exemplo n.º 4
0
void Port_SetPinDirection( Port_PinType pin, Port_PinDirectionType direction )
{
	VALIDATE_STATE_INIT(PORT_SET_PIN_DIRECTION_ID);
	VALIDATE_PARAM_PIN(pin, PORT_SET_PIN_DIRECTION_ID);

	uint8 port = GET_PIN_PORT(pin);
	uint32 mask = GET_PIN_MASK(pin);

	if (direction & PORT_PIN_IN) {
		Port_Base[port]->DIR |= mask;

	} else {
		Port_Base[port]->DIR &= ~mask;

	}

	return;
}
Exemplo n.º 5
0
/** @req SWS_Port_00054 */
void Port_SetPinDirection( Port_PinType bit, Port_PinDirectionType direction )
{
    VALIDATE_STATE_INIT(PORT_SET_PIN_DIRECTION_ID);
    VALIDATE_PARAM_PIN(bit, PORT_SET_PIN_DIRECTION_ID);
    imask_t state;

    Irq_Save(state); // Lock interrupts
    /** @req SWS_Port_00063 */
    if (direction==PORT_PIN_IN) {
        Port_Arc_setPin(bit, Port_Arc_getRegPointerFromPinId( REGISTERSELECTION_PM, bit, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION), 1);
        Port_Arc_setPin(bit, Port_Arc_getRegPointerFromPinId( REGISTERSELECTION_PIBC, bit, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION), 1);
    }
    else {
        Port_Arc_setPin(bit, Port_Arc_getRegPointerFromPinId( REGISTERSELECTION_PM, bit, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION), 0);
        Port_Arc_setPin(bit, Port_Arc_getRegPointerFromPinId( REGISTERSELECTION_PIBC, bit, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION), 0);
    }
    Irq_Restore(state); // Restore interrupts

}
Exemplo n.º 6
0
/** @req SWS_Port_00087 PORT_E_MODE_UNCHANGEABLE and PORT_E_PARAM_INVALID_MODE not available */
void Port_SetPinMode(Port_PinType Pin, Port_PinModeType Mode)
{
    /** @req SWS_Port_00125 */
    VALIDATE_STATE_INIT(PORT_SET_PIN_MODE_ID);
    VALIDATE_PARAM_PIN(Pin, PORT_SET_PIN_MODE_ID);

    ArcPort_PinConfig tmpPortCfg = {.flags.UINT16 = Mode};

    SET_PORT_REGISTER(Pin, PMC,   tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PIPC,  tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PM,    tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PIBC,  tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PFC,   tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PFCE,  tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PFCAE, tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PBDC, tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PU,    tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PD,    tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PDSC,  tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PODC,  tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    SET_PORT_REGISTER(Pin, PIS,  tmpPortCfg, PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);

}
Exemplo n.º 7
0
void Port_GetVersionInfo(Std_VersionInfoType* versionInfo)
{
  VALIDATE_STATE_INIT(PORT_GET_VERSION_INFO_ID);
  memcpy(versionInfo, &_Port_VersionInfo, sizeof(Std_VersionInfoType));
  return;
}