mips - MIPS - 创建一个延迟,将 80MHz 处理器“调节”到 1Hz
问题描述
我们的任务是在“运行灯”程序中实现延迟。我的意思是,我们有一个以 80MHz 运行的处理器,但它应该只以 1Hz 的频率输出光。所以我想实现 80.000 次操作的延迟,这样每 80.001 次都会是灯。这是我的尝试:
delay80M:
li a0, 5000
loopdelay:
addi a0, a0, -1
nop
addiu sp, sp, -8 // Beispiel zur Stackverwendung (hier eigentlich nicht erforderlich)
nop
sw s0, (sp)
nop
sw s1,4(sp)
nop
lw s1,4(sp)
nop
lw s0, (sp)
nop
addiu sp, sp, 8
bgtz a0, loopdelay
jr ra
nop
然而,我不太确定这是否是最佳方式。在此先感谢,祝您有美好的一天:)
解决方案
您的方法看起来可行,但会浪费很多电量。如果您可以设置一个每秒中断 CPU 一次的定时器,您可以使用 MIPSWAIT
指令停止处理器,直到收到定时器中断。
推荐阅读
- firebase - 仅检索更改的文档字段
- javascript - 在显示文本之前等待页面重新加载
- reactjs - react-sortable-hoc -- 在没有实验类属性的情况下保持新的排序顺序
- python - Python, Splitting Multiple Strings in a Column
- php - 如何获得一维数组选择列值
- php - php $_POST[] 提交后未设置
- vim - Vim BufWritePost 在启动时手动获取 vimrc 后才会生效
- typescript - 为什么覆盖的名称属性记录为未定义
- mysql - “错误 2026 (HY000): SSL 连接错误”通过某些网络连接到 MySQL,但不是其他网络
- python - 删除重复图中的边会删除原始图中的边