Esempio n. 1
0
/** !req SWS_Port_00005 */
void Port_Init(const Port_ConfigType *configType) {
    /* @req SWS_Port_00105 Always checking the parameter */
    VALIDATE_PARAM_CONFIG(configType, PORT_INIT_ID);

    uint8 pinNr = 0;    // The numbering used in table 2.1 Pin Assignment 176-Pin LQFP in the Renesas Ref Manual

    // First set outputs
    for (uint16 i = 0; configType->pinConfig[i].PortPinId != PORT_INVALID_REG; i++) {
        pinNr = configType->pinConfig[i].PortPinId;
        SET_PORT_REGISTER(pinNr, P, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    }

    // Copy config to register areas
    for (uint16 i = 0; configType->pinConfig[i].PortPinId != PORT_INVALID_REG; i++) {
        pinNr = configType->pinConfig[i].PortPinId;

        SET_PORT_REGISTER(pinNr, PMC, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PIPC, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PM, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PIBC, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PFC, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PFCE, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PFCAE, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PBDC, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PU, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PD, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PDSC, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PODC, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
        SET_PORT_REGISTER(pinNr, PIS, configType->pinConfig[i], PORT_MODULE_ID, PORT_GLOBAL_ID, PORT_E_UNEXPECTED_EXECUTION);
    }

    /** @req SWS_Port_00002 */
    Port_state = PORT_INITIALIZED;
    Port_configPtr = configType;
}
Esempio n. 2
0
void Port_Init(const Port_ConfigType *configType) {
	VALIDATE_PARAM_CONFIG(configType, PORT_INIT_ID);

	_configPtr = (Port_ConfigType *)configType;

	// Bring GIO register out of reset.
	gioREG->GCR0 = 1;

	for (uint16 i = 0; i < PORT_NUMBER_OF_PINS; i++) {
		Port_RefreshPin(i);
	}

	_portState = PORT_INITIALIZED;

	return;
}