Estou escrevendo meu código no BASCOM-AVR. Tem 2 loops if e 1 loop dentro do primeiro loop if. Eu darei o fornecimento CC ao controlador ATmega16. Agora, o que eu quero é, se a energia é cortada quando o código está em loop, o funcionamento deve continuar a partir desse mesmo passo dentro de loop quando a energia é ligada. Isso é possível?
Se alguém não conseguir compreender a minha pergunta, por favor, deixe-me saber, vou tentar explicar de uma maneira diferente.
Gentilmente à espera de ajuda.
microcontroller
atmega
bascom
Deep Chhowala
fonte
fonte
Respostas:
Na prática, você não pode fazer isso. Para realizar o que você quer, seria necessário salvar cada registrar no processador e cada RAM local para algum tipo de memória não-volátil toda vez que algo muda, e então de alguma forma recarrega todos os registradores e RAM da memória não-volátil quando a energia é restaurada. Você também precisa ter certeza de que o processador não perdeu energia enquanto estava no meio da cópia, senão você acaba com um estado bizarro na memória não-volátil. Seria uma boa idéia adicionar verificação de erros para garantir que você salvou uma imagem válida ... e tudo isso deve ser feito após cada instrução ser executada.
Uma opção mais razoável é adicionar algum tipo de backup de bateria, depois detectar quando a energia principal está caindo e mover o processador para um estado de baixa energia.
fonte
Off topic para Superusuário, mas dará uma breve resposta.
Para que seu código se recupere de uma perda de energia, você precisa adicionar um código que registre seu progresso em um arquivo. Dependendo de suas necessidades, talvez seja necessário registrar o início e / ou a conclusão de cada ação. Em seguida, você adicionaria código ao início do script que leria para registrar e continuar de onde parou. Obviamente, com uma perda de energia, algo pode não ser logado corretamente, então você pode escrever código para verificar se as coisas foram feitas.
fonte