You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.9 KiB
71 lines
1.9 KiB
/***************************************************************************
|
|
* Copyright (C) 2005 by David Saxton *
|
|
* david@bluehaze.org *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
***************************************************************************/
|
|
|
|
#ifndef PICCOMPONENTPIN_H
|
|
#define PICCOMPONENTPIN_H
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
#ifndef NO_GPSIM
|
|
|
|
#include "logic.h"
|
|
#include "gpsim/stimuli.h"
|
|
|
|
#include <tqstring.h>
|
|
|
|
/**
|
|
@short Controls a pin on the PIC component
|
|
@author David Saxton
|
|
*/
|
|
class PICComponentPin : public CallbackClass, public stimulus
|
|
{
|
|
public:
|
|
PICComponentPin( PICComponent * picComponent, PicPin picPin );
|
|
~PICComponentPin();
|
|
/**
|
|
* Attach this to gpsim
|
|
*/
|
|
void attach( IOPIN * iopin );
|
|
/**
|
|
* Called when the IOPIN this class is associated with changes state.
|
|
* Updates the associated LogicOut / LogicIn / etc according to what
|
|
* type of pin this is.
|
|
*/
|
|
virtual void set_nodeVoltage( double v );
|
|
/**
|
|
* Called from our logic pin when the logic changes state.
|
|
*/
|
|
void logicCallback( bool state );
|
|
/**
|
|
* Sets the output (if has one) to low. Called when the user stops the
|
|
* PIC.
|
|
*/
|
|
void resetOutput();
|
|
|
|
virtual double get_Vth();
|
|
|
|
protected:
|
|
// Conductance of pin in different configurations
|
|
double m_gOutHigh;
|
|
double m_gOutLow;
|
|
|
|
PicPin m_picPin;
|
|
IOPIN * m_pIOPIN;
|
|
LogicOut * m_pLogicOut;
|
|
LogicIn * m_pLogicIn;
|
|
PICComponent * m_pPICComponent;
|
|
Stimulus_Node * m_pStimulusNode;
|
|
const TQString m_id;
|
|
};
|
|
|
|
#endif
|
|
#endif
|