Я рассмотрел дюжину различных способов сброса моего ардуино, от подключения штифтов до булавки сброса и присяжных, строящих странные биты кода. Ни один из них не работает.Сброс 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: Error: bad instruction `jmp 0'
И тогда не удается загрузить код. Я не знаю, что делать. Мой полный код можно найти здесь http://pastebin.com/CA2Ms2hB, но он огромный, и я не уверен, поможет ли он.
Если кто-нибудь может помочь мне понять, почему software_Reset(); Я бы очень признателен, я здесь в конце моей веревки.
(также, если у вас есть другие методы, чтобы сбросить Arduino я с удовольствием попробовать их)
В настоящее время «arduino» не является автоматически UNO или, по крайней мере, 8-разрядным контроллером atmega. Для тех, кто это спорно, если 'JMP 0' действительно хуже, чем злоупотребление сторожевого, но оба методы должны работать – datafiddler
Возможна ли у вас есть некоторый непечатаемый символ перед' jmp'? Я знаю, что приседания вокруг arduino, но (я слышал) некоторые ассемблеры суетливы, о том, какие инструкции столбцов нужно начинать. –
Возможный дубликат [Как написать функцию пользовательского сброса() в C для AVR-Studio?] (http://stackoverflow.com/questions/32802221/how-to-write-a-custom-reset-function-in-c-for-avr-studio) –