Hallo habe folgendes Problem: Meine Firmware läuft in einer EndlosSchleife, wenn ich nun einen Software Reset durchführen will, wird die AssemblerFunktion Jump to 0000 aufgerufen, welche meinen Programmcode wieder von voren beginnen lässt. Leider enumeriert sich aber mein Controller nach einem solchen Reset nicht richtig... Muss ich noch irendwas vorher per Software deaktivieren ???? Danke für die Hilfe M. Sahm
Gast
#556161
Hallo, Du machst einen Sprung auf Adresse 0, schön. Mit einem Reset hat das nichts zu tun. Die CPU und alle Ports und Register sind genauso, wie Du sie beim Sprung hinterlässt. Der Zustand nach Reset kann man im Datenblatt zusammensuchen, Ports normalerweise bei AVR alle auf 0, Controlregister auf 0, Interrupt gesperrt usw. usw. usw. Watchdog könnte gehen (wenn vorhanden, hab zum 1287 jetzt nicht geschaut) oder eben per Portpin den Reset-Pin auf L ziehen, der sollte nach Reset Eingang ohne PullUp sein, müßte man aber auch nachschauen. Gruß aus Berlin Michael
Ich würde halt gerne den Zustand haben, als wenn ich das Gerät grade erst wieder reinstecke... Ist denn ein Jmp an Adresse 0 nicht gleich einem Watchdog Reset ? Danke