Biomedical Engineering Reference
In-Depth Information
Void EnableSense(): does the opposite of the previous routine.
Void Pace(): implements pacing pulse generation.
Unsigned int Elapsed(): returns the time elapsed while GetEvent() waited for an
event to occur.
Void ReadParameters(): reads programmable parameters and updates them. Once
this routine updates parameters, the device assumes the new parameter set at once.
The topic's ftp site includes three source code
fi
file archives for
fi
rmware that can be used
for this project:
1. VVI.zip implements a simple VVI state machine that disregards the VOO mode.
This is the program that was discussed above.
2. VVI with embedded VOO.zip implements a VVI state machine that can be placed in
VOO mode by disregarding sensed events. The state machine is identical to the one
implemented in VVI.zip, but the EnableSense routine enables or disables sensing
depending on the desired state.
3. VVI VOO with VOO state.zip is a VVI state machine in which the VOO state is
implemented through a new state during which there is no sensing.
POWER CONSUMPTION
Together with safety and reliability, power consumption is a major design constraint in the
development of implantable devices. One popular technique is to power-down circuits
when they are not in use. For example, power to sense ampli
ers can be shut down during
the refractory period. In a similar manner, the telemetry and communications circuit can
be kept o
fi
when out of range of a programmer.
Interestingly, software in an implantable device is often evaluated in connection with
the power that it consumes. To keep power consumption down, clocks are kept to the low-
est possible frequency, and software is usually designed to maximize the microcontroller's
standby mode (using the SLEEP command). The [GetEvent()] routine implements this
technique in the following manner:
ff
unsigned char GetEvent()
{
InitTout( Tout );
Sleep();
SenseTime ReadTimer();
if( INTF && INTE ) //sensing event
{
INTF 0;
return SENSE;
}
else if ( TMR1IF && TMR1IE )
// timeout
{
TMR1IF 0;
return TOUT;
}
else
return UNKNOWN_EVENT;
}
Search WWH ::




Custom Search