void turnPinLow(NamedOutputPin *output) { efiAssertVoid(output!=NULL, "NULL turnPinLow"); // turn off the output doSetOutputPinValue2(output, false); #if EFI_DEFAILED_LOGGING || defined(__DOXYGEN__) systime_t after = hTimeNow(); debugInt(&signal->logging, "a_time", after - signal->hi_time); scheduleLogging(&signal->logging); #endif /* EFI_DEFAILED_LOGGING */ #if EFI_ENGINE_SNIFFER || defined(__DOXYGEN__) if (ENGINE(isEngineChartEnabled)) { // this is a performance optimization - array index is cheaper then invoking a method with 'switch' const char *pinName = output->name; addEngineSniffferEvent(pinName, WC_DOWN); } #endif /* EFI_ENGINE_SNIFFER */ }
void turnPinLow(NamedOutputPin *output) { efiAssertVoid(output!=NULL, "NULL turnPinLow"); #if EFI_GPIO // turn off the output doSetOutputPinValue2(output, false); #endif #if EFI_DEFAILED_LOGGING systime_t after = hTimeNow(); debugInt(&signal->logging, "a_time", after - signal->hi_time); scheduleLogging(&signal->logging); #endif /* EFI_DEFAILED_LOGGING */ #if EFI_WAVE_CHART if (CONFIG(isDigitalChartEnabled)) { // this is a performance optimization - array index is cheaper then invoking a method with 'switch' const char *pinName = output->name; addWaveChartEvent(pinName, WC_DOWN); } #endif /* EFI_WAVE_ANALYZER */ }
void turnPinHigh(NamedOutputPin *output) { efiAssertVoid(output!=NULL, "NULL @ turnPinHigh"); #if EFI_DEFAILED_LOGGING || defined(__DOXYGEN__) // signal->hi_time = hTimeNow(); #endif /* EFI_DEFAILED_LOGGING */ // turn the output level ACTIVE // todo: this XOR should go inside the setOutputPinValue method doSetOutputPinValue2(output, true); // sleep for the needed duration #if EFI_ENGINE_SNIFFER || defined(__DOXYGEN__) // explicit check here is a performance optimization to speed up no-chart mode if (ENGINE(isEngineChartEnabled)) { // this is a performance optimization - array index is cheaper then invoking a method with 'switch' const char *pinName = output->name; // dbgDurr = hal_lld_get_counter_value() - dbgStart; addEngineSniffferEvent(pinName, WC_UP); } #endif /* EFI_ENGINE_SNIFFER */ // dbgDurr = hal_lld_get_counter_value() - dbgStart; }
void turnPinHigh(NamedOutputPin *output) { efiAssertVoid(output!=NULL, "NULL @ turnPinHigh"); #if EFI_DEFAILED_LOGGING // signal->hi_time = hTimeNow(); #endif /* EFI_DEFAILED_LOGGING */ #if EFI_GPIO // turn the output level ACTIVE // todo: this XOR should go inside the setOutputPinValue method doSetOutputPinValue2(output, true); // sleep for the needed duration #endif #if EFI_WAVE_CHART // explicit check here is a performance optimization to speed up no-chart mode if (CONFIG(isDigitalChartEnabled)) { // this is a performance optimization - array index is cheaper then invoking a method with 'switch' const char *pinName = output->name; // dbgDurr = hal_lld_get_counter_value() - dbgStart; addWaveChartEvent(pinName, WC_UP); } #endif /* EFI_WAVE_ANALYZER */ // dbgDurr = hal_lld_get_counter_value() - dbgStart; }
void OutputPin::setValue(int logicValue) { doSetOutputPinValue2(this, logicValue); }