⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dctsetp.c

📁 spice中支持多层次元件模型仿真的可单独运行的插件源码
💻 C
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1985 Thomas L. Quarles**********/#include "spice.h"#include <stdio.h>#include "ifsim.h"#include "iferrmsg.h"#include "trcvdefs.h"#include "cktdefs.h"#include "util.h"#include "suffix.h"/* ARGSUSED */int DCTsetParm(ckt,anal,which,value)    CKTcircuit  *ckt;    GENERIC *anal;    int which;    IFvalue *value;{    register TRCV* cv= (TRCV*)anal;    switch(which) {    case DCT_START1:        cv->TRCVvStart[0] = value->rValue;        cv->TRCVnestLevel = MAX(0,cv->TRCVnestLevel);        cv->TRCVset[0]=TRUE;        break;    case DCT_STOP1:        cv->TRCVvStop[0] = value->rValue;        cv->TRCVnestLevel = MAX(0,cv->TRCVnestLevel);        cv->TRCVset[0]=TRUE;        break;    case DCT_STEP1:        cv->TRCVvStep[0] = value->rValue;        cv->TRCVnestLevel = MAX(0,cv->TRCVnestLevel);        cv->TRCVset[0]=TRUE;        break;    case DCT_START2:        cv->TRCVvStart[1] = value->rValue;        cv->TRCVnestLevel = MAX(1,cv->TRCVnestLevel);        cv->TRCVset[1]=TRUE;        break;    case DCT_STOP2:        cv->TRCVvStop[1] = value->rValue;        cv->TRCVnestLevel = MAX(1,cv->TRCVnestLevel);        cv->TRCVset[1]=TRUE;        break;    case DCT_STEP2:        cv->TRCVvStep[1] = value->rValue;        cv->TRCVnestLevel = MAX(1,cv->TRCVnestLevel);        cv->TRCVset[1]=TRUE;        break;        case DCT_NAME1:        cv->TRCVvName[0] = value->uValue;        cv->TRCVnestLevel = MAX(0,cv->TRCVnestLevel);        cv->TRCVset[0]=TRUE;        break;    case DCT_NAME2:        cv->TRCVvName[1] = value->uValue;        cv->TRCVnestLevel = MAX(1,cv->TRCVnestLevel);        cv->TRCVset[1]=TRUE;        break;    case DCT_TYPE1:        cv->TRCVvType[0] = value->iValue;        cv->TRCVnestLevel = MAX(0,cv->TRCVnestLevel);        cv->TRCVset[0]=TRUE;        break;    case DCT_TYPE2:        cv->TRCVvType[1] = value->iValue;        cv->TRCVnestLevel = MAX(1,cv->TRCVnestLevel);        cv->TRCVset[1]=TRUE;        break;    default:        return(E_BADPARM);    }    return(OK);}static IFparm DCTparms[] = {    { "start1",     DCT_START1, IF_SET|IF_REAL,     "starting voltage/current"},    { "stop1",      DCT_STOP1,  IF_SET|IF_REAL,     "ending voltage/current" },    { "step1",      DCT_STEP1,  IF_SET|IF_REAL,     "voltage/current step" },    { "start2",     DCT_START2, IF_SET|IF_REAL,     "starting voltage/current"},    { "stop2",      DCT_STOP2,  IF_SET|IF_REAL,     "ending voltage/current" },    { "step2",      DCT_STEP2,  IF_SET|IF_REAL,     "voltage/current step" },    { "name1",      DCT_NAME1,  IF_SET|IF_INSTANCE, "name of source to step" },    { "name2",      DCT_NAME2,  IF_SET|IF_INSTANCE, "name of source to step" },    { "type1",      DCT_TYPE1,  IF_SET|IF_INTEGER,  "type of source to step" },    { "type2",      DCT_TYPE2,  IF_SET|IF_INTEGER,  "type of source to step" }};SPICEanalysis DCTinfo  = {    {         "DC",        "D.C. Transfer curve analysis",        sizeof(DCTparms)/sizeof(IFparm),        DCTparms    },    sizeof(TRCV),    SWEEPDOMAIN,    1,    DCTsetParm,    DCTaskQuest,    NULL,    DCtrCurv};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -