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

📄 dmx512rxrules.js

📁 高亮度LED驱动程序 C51 由原厂提供
💻 JS
字号:
function DRCheckerProc(strInstName)
{
    var CPUclkstr;
    var CPUclk;
    
    var DevEditor  = PS.GetDeviceEditor();
    var strOverlay = DevEditor.GetData("GET_OVERLAY_NAME_FROM_INSTANCE", strInstName, "", "", "");
    if (DevEditor.IsUMPlaced(strOverlay, strInstName))
    {
        var SysClk = DevEditor.GetGlobalResourceValue(strOverlay, "Power Setting [ Vcc / SysClk freq ]");
        if (SysClk == 0)
        {
            SysClk = DevEditor.GetGlobalResourceValue(strOverlay, "CPU_Clock");
            if(SysClk.indexOf("24_MHz")>=0) SysClk = 24.0;
            else if(SysClk.indexOf("12_MHz")>=0) SysClk = 12.0;
            else if(SysClk.indexOf("6_MHz")>=0) SysClk = 6.0;
            else if(SysClk.indexOf("3_MHz")>=0) SysClk = 3.0;
            else if(SysClk.indexOf("1.5_MHz")>=0) SysClk = 1.5;
            else if(SysClk.indexOf("750_KHz")>=0) SysClk = 0.75;
            else if(SysClk.indexOf("185.5_KHz")>=0) SysClk = 0.1855;
            else if(SysClk.indexOf("93.75_KHz")>=0) SysClk = 0.09375;
            CPUclk = SysClk;
        } else {
            if(SysClk.indexOf("24MHz")>=0) SysClk = 24.0;
            else if(SysClk.indexOf("12MHz")>=0) SysClk = 12.0;
            else if(SysClk.indexOf("6MHz")>=0) SysClk = 6.0;
            CPUclkstr = DevEditor.GetGlobalResourceValue(strOverlay, "CPU_Clock");
            CPUclk = SysClk / CPUclkstr.slice(CPUclkstr.indexOf("/")+1);
        }
        if(CPUclk < 6.0)
        {
            ShowWarningMsg("CPU Frequency may be too low, CPU will be overflooded by DMX user module Interrupts. Refer to user module documentation about CPU speed settings.");
            ShowWarningMsg("Current CPU Frequency = " + CPUclk + "MHz, minimal recomended CPU Frequency is 6MHz");
        }
        
        var RXClock = DevEditor.GetUserModuleParameter2(strOverlay, strInstName, "RX Clock");
        var PWDClock = DevEditor.GetUserModuleParameter2(strOverlay, strInstName, "PWD Clock");
        
        var VC1f = SysClk / DevEditor.GetGlobalResourceValue(strOverlay, "VC1= SysClk/N");
        var VC2f = VC1f / DevEditor.GetGlobalResourceValue(strOverlay, "VC2= VC1/N");
        var VC3src = DevEditor.GetGlobalResourceValue(strOverlay, "VC3 Source");
        var VC3f;
        
        if(VC3src == "SysClk/1") VC3f = SysClk / DevEditor.GetGlobalResourceValue(strOverlay, "VC3 Divider");
        else if(VC3src == "VC1") VC3f = VC1f / DevEditor.GetGlobalResourceValue(strOverlay, "VC3 Divider");
        else if(VC3src == "VC2") VC3f = VC2f / DevEditor.GetGlobalResourceValue(strOverlay, "VC3 Divider");
        else if(VC3src == "SysClk*2") VC3f = (SysClk * 2) / DevEditor.GetGlobalResourceValue(strOverlay, "VC3 Divider");
        
        if(RXClock == "VC1" && (VC1f > 2.01 || VC1f < 1.99)) ShowWarningMsg("Incorrect RX Block Clock! (must be 2MHz) Current clock is " + VC1f + "MHz");
        if(RXClock == "VC2" && (VC2f > 2.01 || VC2f < 1.99)) ShowWarningMsg("Incorrect RX Block Clock! (must be 2MHz) Current clock is " + VC2f + "MHz");
        if(RXClock == "VC3" && (VC3f > 2.01 || VC3f < 1.99)) ShowWarningMsg("Incorrect RX Block Clock! (must be 2MHz) Current clock is " + VC3f + "MHz");
        
        if(PWDClock == "VC1" && (VC1f > 0.18 || VC1f < 0.09)) ShowWarningMsg("Incorrect PWD Block Clock! (must be (0.09-0.18)MHz) Current clock is " + VC1f + "MHz");
        if(PWDClock == "VC2" && (VC2f > 0.18 || VC2f < 0.09)) ShowWarningMsg("Incorrect PWD Block Clock! (must be (0.09-0.18)MHz) Current clock is " + VC2f + "MHz");
        if(PWDClock == "VC3" && (VC3f > 0.18 || VC3f < 0.09)) ShowWarningMsg("Incorrect PWD Block Clock! (must be (0.09-0.18)MHz) Current clock is " + VC3f + "MHz");
    }
}

⌨️ 快捷键说明

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