楼主最近还看过
主程序在第一个扫描周期调用子程序SBR0;
SBR0高速计数器和定时中断的初始化;
INT0对高速计数器求值的定时中断程序;
程序和注释
主程序在第一个扫描周期调用初始化子程序SBR0,仅在第一个扫描周期标志位SM01=1。由子程序SBR0实现初始化。
首先,把高速计数器HSC1的控制字节MB47置为16进制数FC,其含义是:正方向计数,可更新预置值(PV),可更新当前值(CV),激活HSC1。
然后,用定义指令HDEF把高速计数器HSC1设置成工作模式0,即没有复位或启动输入,也没有外部的方向选择。当前值SMD48复位为0,预置值SMD52置为FFFF(16进制)。定时中断0间隔时间SMB34置为100ms,中断程序0分配给定时中断0,并允许中断,用指令HSC1启动高速计数器。
每100ms调用一次中断程序0,读出高速计数器的数值后,将其置零。通过HSC1计数值及变换关系来求被测的电压值。
以上方法已用于多个自控项目,实践证明,该方法进行模拟电压信号测量,具有精度高,抗干扰性强,运行可靠等优点,具有较大的实用价值和广泛的应用前景。
介绍一种好的产品:
主程序在第一个扫描周期调用子程序SBR0;
SBR0高速计数器和定时中断的初始化;
INT0对高速计数器求值的定时中断程序;
程序和注释
主程序在第一个扫描周期调用初始化子程序SBR0,仅在第一个扫描周期标志位SM01=1。由子程序SBR0实现初始化。
首先,把高速计数器HSC1的控制字节MB47置为16进制数FC,其含义是:正方向计数,可更新预置值(PV),可更新当前值(CV),激活HSC1。
然后,用定义指令HDEF把高速计数器HSC1设置成工作模式0,即没有复位或启动输入,也没有外部的方向选择。当前值SMD48复位为0,预置值SMD52置为FFFF(16进制)。定时中断0间隔时间SMB34置为100ms,中断程序0分配给定时中断0,并允许中断,用指令HSC1启动高速计数器。
每100ms调用一次中断程序0,读出高速计数器的数值后,将其置零。通过HSC1计数值及变换关系来求被测的电压值。
以上方法已用于多个自控项目,实践证明,该方法进行模拟电压信号测量,具有精度高,抗干扰性强,运行可靠等优点,具有较大的实用价值和广泛的应用前景。
介绍一种好的产品: