【发布时间】:2016-12-01 18:08:24
【问题描述】:
我已经研究了十几种不同的方法来重置我的 arduino,从将引脚连接到重置引脚和陪审团操纵奇怪的代码位。 它们都不起作用。
似乎每个人都在使用的代码是
void software_Reset() // Restarts program from beginning but does not reset the peripherals and registers
{
asm volatile (" jmp 0");
}
我的 arduino 用
回应C:\Users\Leonardo\AppData\Local\Temp\ccGUYdTQ.s:2259:错误:错误 指令`jmp 0'
然后上传代码失败。我不知道该怎么办。我的完整代码可以在这里找到http://pastebin.com/CA2Ms2hB,但它很大,我不确定它是否会有所帮助。
如果有人能帮助我理解为什么 software_Reset();我真的很感激,我已经走到了尽头。
(如果您有其他方法来重置 arduino,我很乐意尝试)
【问题讨论】:
-
现在
arduino不会自动成为 UNO 或至少是 atmega 8 位控制器。对于那些人来说,jmp 0是否真的比滥用看门狗更糟糕是值得商榷的,但两种方法都应该有效 -
jmp之前是否有一些不可打印的字符?我知道 arduino,但是(我听说)一些汇编程序对需要从哪个列指令开始很挑剔。 -
您必须阅读可用的文档以查看 1) 汇编语言指令或 2) 其他宏可用于执行此操作。每个控制器都不同。如果有,请使用它。如果一个都没有,你就做不到。我曾经使用过的每个 Atmel 控制器都有一个配套文档,其中概述了它支持的特定组装指令。
标签: arduino