所有关于电路

特别紧急的任务

J

jpanhalt

2008年1月18日加入
11088年
你是什么意思?

让喷气式飞机在航母上着陆?
提交期末考试?
支付赡养费?

最重要的是你发布的链接中有什么让你感到困惑?
Papabravo

Papabravo

2006年2月24日加入
15608年
最后的编辑:
K

KeepItSimpleStupid

2014年3月4日加入
4611年
就像nsaspook说的,定时器。你不会想要一个随机的中断,比如每0.5s, 1s, 2s,如果你需要它至少是1/s。你的时间可能是1个中断1s +-10mS。

如果您使用PID,那么关键时间将是不同的。

如果你在硬盘上读取磁头的位置也是不同的。

在旧的MacOS中,运行的程序将控制权移交给了操作系统。时间共享可以是先发制人的多任务处理,这通常是一个循环,允许时间运行。如果你试图同时调暗一个灯泡,操作系统不会允许这种情况发生,因为你不能在正确的地方点燃可控硅。

我把它理解为"对给定事件的保证反应"

通常,中断处理程序禁用中断,设置中断发生的事实。您不希望在中断期间发生中断。然后它再次启用中断。

如果要计时,ISR必须保存系统计时器的值。

在windows中,我试图使用Labview移动一个60赫兹的同步电机。我不能。硬件必须做马达运动。
软件可以做多久(最多1-2分钟)。它可以计算移动的时间(从几分之一秒到10秒),但不能正确地完成移动。

线程启动

microcontroller60

2019年10月1日加入
43
你是什么意思?
我是在嵌入式系统的背景下问的。例如,汽车在高速公路上高速行驶,我们要数高速公路上有多少辆汽车经过。我们需要一个能够计算汽车数量的系统。
由于反应时间短,很难用嵌入式系统来计算高速公路上行驶的车辆数量。这是嵌入式系统的关键时刻吗?

线程启动

microcontroller60

2019年10月1日加入
43
你真的是说10毫秒,真的吗?在32mhz的PIC中,这是每指令125 ns或每ms 8000指令,我将把每10 ms指令的计算留给读者。
让我们假设我们将数据从PIC 32mhz发送到LCD。LCD的响应时间为100ms。LCD显示时间长。有没有响应时间很短的设备?

在烹饪计时器中有没有什么装置可以在很短的时间内做出反应?
在玻璃炉系统中有什么装置能在很短的时间内作出反应吗?
J

jpanhalt

2008年1月18日加入
11088年
当我清除我目前使用的图形LCD上的DDRAM时,写入132x64屏幕上的每个字节需要19607 Tcy,这在32 MHz和SPI在Fosc/4需要2.451 ms。我之前使用的4x20液晶屏在超过100K波特率下很容易操作,这是少于10毫秒写每个字符。

我使用两种显示器与MAX31856数字热电偶放大器。该设备可以在不同的模式下运行。在单镜头模式下,一个60hz滤波器的单次转换需要143ms。在连续读取模式下,每次读取时间为82 ms。由于我只每2或3秒读取一次,我没有发现任何显示或计算限制。现在,如果您每100毫秒读取一次,那么显示和计算延迟可能会产生影响。

在烹饪计时器中有没有什么装置可以在很短的时间内做出反应?
什么是“非常短的时间?”当我在烘焙时,10秒是一个“非常短的时间”。用手吹制玻璃,几秒钟的时间是很短的。我没有使用玻璃炉的经验。
K

KeepItSimpleStupid

2014年3月4日加入
4611年
有一个奇怪的问题,但是你知道在嵌入式系统中有任何这样的关键任务是在10ms内完成的吗?
假设您正在从交流线路产生一个60hz的中断以保持时间,您需要每16.6秒服务一次中断,否则您的计时可能会关闭。实际的数字取决于您需要的时间分辨率。

在一个任务分时实时应用程序中,您可能有一个时间保持函数和处理等待(mS)的函数。每个进程以循环方式运行一定的时间。在这里https://www.geeksforgeeks.org/program-round-robin-scheduling-set-1/是一堆讨论过的调度算法。

我记得有一个OS有一个“null job”。当无事可做时,旋转CPU前面板上的灯。

我记得我写了一个程序来“漂亮打印”一个BASIC程序,其中CPU时间和经过的时间实际上是相同的。我用两种方法写,第一种方法非常非常慢。我开发的第二个算法几乎像编译器编写,它可以非常非常快地生成令牌。空格在BASIC语言中并不重要。BASIC有一个将字符串更改为ASCII字符数组的命令。

在第一次传递中,它标识了带引号的字符串和行号。我没有处理/减少打印“a”;"b"或"a"+"b"结构。例如,用pretty print打印ab。令牌扫描是按照特定的顺序进行的,某些令牌,如“作为文件输入”是单个令牌。
i then, with an input of "10 input "Value of n";n: Start = 3" end up an array of say:
N N s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s c 0 0 0 0 0 e 0(假设这些是数字)
N行数字标记
s -字符串
c =结肠
0 =不是一个token
e = =

我将查看该数组,并在数字变化时插入一个空格。
冒号前后的空格。
可以使用等号前后的空格。
空格被预处理器删除。
某些令牌,如"forinputasfile"会替换"forinputasfile"

如果我更进一步,我可以有一个编译器的基础。

在这个BASIC中,可以用换行符扩展行。
最后的编辑: