Software matige reset.

Arduino specifieke Software
Gebruikers-avatar
Berichten: 13
Geregistreerd: 22 Jun 2012, 12:04

Software matige reset.

Berichtdoor WallyCom » 08 Dec 2013, 02:38

Hoi een ieder.

Ik ben er lang tussenuit geweest. ( Te lui om te typen ).
Ik heb een vraag.
Software matige reset is mogelijk.
Ik weet alleen 'nog' niet precies hoe.
Processor 328 p-pu.
Watch dog timer WDT heeft een mogelijkheid, maar ergens heb ik eens gelezen dat er verschillen zijn voor oude en nieuwe uC's.
En natuurlijke wordt er niet bij vermeldt welke etc.
Heeft er iemand ervaring met de 'Software matige reset'.
Bij voorbaat dank.

Ik beloof dat ik weer eens wat vaker van me laat horen.

Harry.

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Software matige reset.

Berichtdoor nicoverduin » 08 Dec 2013, 13:05

Simpel en recht toe recht aan:
Code: Alles selecteren
void software_Reset() // Restarts program from beginning but does not reset the peripherals and registers
{
    asm volatile ("  jmp 0"); 

Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 13
Geregistreerd: 22 Jun 2012, 12:04

Re: Software matige reset.

Berichtdoor WallyCom » 08 Dec 2013, 16:35

Dank U wel voor de reactie,
echter ; de 'oplossing' die U aanbied laat het programma (pointer in de sketch) naar regel '0' (nul) springen.
Ik ben echter op zoek naar een betrouwbare en geteste manier om een echte softwarematige reset te doen waarbij dus werkelijk alles naar 0 gaat.
Alle registers etc.
Er zijn tal van uitlatingen, sites etc. hierover op internet, maar steeds valt er een of andere voetangel te bespeuren. Alsof de schrijver van betreffende artikel
dit niet zelf hebben uitgeprobeerd.

Ik gebruik de Jeelib-librarie om de uC in powerdown modes te zetten en zodoende batterijen te sparen in een IR-afstandsbediening.
Zover ik weet werkt Jeelib ook met de WDT.
Ik zal eens in die richting gaan zoeken.

Gegroet U allen.
Harry.
M.Vr.Gr.,
Harry

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Software matige reset.

Berichtdoor nicoverduin » 08 Dec 2013, 19:06

Als jij naar 0 springt kom je uit bij de assemblycode die eerst alle constanten initialiseert door ze te kopiëren van Flash (want daar staan ze). De rest wordt afhankelijk van jouw programmeer kwaliteiten geinitialiseerd.. De registers, zou kunnen, maar het de vraag of dat relevant is. Als je goed en netjes programmeert ga je nu ook uit van het initialiseren van de poorten en variabelen en dat er toevallig een speciale waarde staat. En wat houd jou tegen om het zelf te proberen? als je wilt dat de hardware ook gereset wordt, moet je gewoon een "one Shot maken" die je aan de reset pin hangt.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Google [Bot] en 82 gasten