A flexible pulse generator based on a stand-alone microprocessor system