blob: 8681cab5e50749f27515971952f28b47303a117f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/***************************************************************************
* 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
|