Hallo,
hast du mal ein kleines Testprogramm, das solches Verhalten zeigt, dann kann man mal im Assembler forschen was Bascom da draus gemacht hat.
Hallo,
ich habe ein Problem mit dem RN-Mega2560 Board. Sowie ich es von der Spannung trenne und wieder ans Netz nehme schalten ab und zu einfach ein paar Ausgänge auf 5 Volt obwohl ich das im µC nicht programmiert habe.
Ich habe schon das komplette Programm im Bascom auf die Anweisung für den Quarz und das Def File begrenzt und trotzdem passiert es wieder.
Wenn ich den µC komplett leere also kein Programm mehr drinn ist, schaltet er auch nicht mehr irgendwas.
Kann es sein das das Definitionsfile die Ursache ist das die Ausgänge beim neustart undefiniert schalten ?
Gruß
Steffen
Hallo,
hast du mal ein kleines Testprogramm, das solches Verhalten zeigt, dann kann man mal im Assembler forschen was Bascom da draus gemacht hat.
Hallo linux_80,
wiedermal schön mit dir zu "tippen"
Ein Testprogramm kann man dazu schon fast nicht mehr sagen weil fast nichts mehr da ist ^^
Wie du siehst ist es einfach nur die Definition des Controllers und die Quarzfrequenz.Code:'Diese Anweisung setzt die Fusebits automatisch korrekt (Syntax $PROG LB, FB , FBH , FBX ) $prog , 255 , &B11011001 , 'Quarz an / Teiler aus / Jtag aus $regfile = "m2560def.dat" $hwstack = 82 '80 $framesize = 68 ' 64 $swstack = 68 '44 $crystal = 16000000 'Quarzfrequenz
Das Verhalten der undefinierten Schaltzustände tritt unregelmäßig auf ich mußte den Prozessor manchmal 10-15 mal vom Netz nehmen und wieder ans Netz nehmen und dann haben ein paar Ausgänge geschalten.
Das komische ist schon das keine Ausgänge definiert sind aber schalten tun sie trotzdem das verstehe ich überhaupt nicht.
Kann man so ein Verhalten im Assambler nachvollziehen ?
Gruß
Steffen
Hallo,
mit Assembler kann man nur das finden was die Software macht, und das was Basom hier draus macht ist nur Stackpointer setzen und Speicher löschen, dann gehts in die Endlosschleife. Bzw. wenn man überhaupt kein Programm angibt (Do..Loop, oder End) macht er das immer wieder mit dem Speicherlöschen, da am Ende wieder zum Reset gesprungen wird.
Also nix bewegendes eigentlich.
Kannst Du mal etwas zu deiner Schaltung sagen, denn nach einem Reset sind alle Ports auf Eingang.
Ist an diesen Ports irgendwas angeschlossen, das nur grad nicht gebraucht wird ?
Nuja, damit ist doch sein Problem geklärt. Denn wie schon richtig erkannt sind die einzelnen Pins nach einem reset als Eingang definiert. Als TriState Eingang übrigens.Zitat von linux_80
Wenn man sich die Mühe machen würde, den Pins einfach einen definierten Zustand zu geben (z.B. mit dem internem Pullup) bekommt man auch reproduzierbar das gleiche Ergebniss.
Grüße,
Hanni
Grundregeln des Forenpostings:
1. Nutze niemals die Suchfunktion!
2. Überprüfe niemals die Topics nach Ähnlichkeiten!
3. Schreibe alles in hellgelb!
meine Ausgänge haben Transistoren als Schalter dahinter und dahinter hängt ein Optokopplerrelais um das Schaltvermögen zu erhöhen.
Wieso sollte denn ein Transistor bei Zustand "Reset" schalten ?
Gruß
Steffen
Es könnte ja sein, das irgendwas bei low aktiviert wird, dann könnte ab dem Reset des µC bis zum gewünschten initialisieren des Ports durchaus etwas aktiv sein was so nicht gewollt ist.![]()
ja das wäre eine Variante únd deswegen habe ich mit meinem Bascom Programm gleich nach dem initilisieren gesagt er soll alle Port auf Low ziehen.
Das hat aber nichts gebracht. Wenn der Controller gestartet hat dann bleiben die Ausgänge die eigentlich nicht schalten dürften trotzdem auf high.
Ich habe noch eine LED vor dem Transistor zur Kontrolle und diese leuchtet ebenfalls das heißt dann also das die Transistoransteuerung einwandfrei funktioniert und nur das tut was auch der Schaltausgang vom µC tut.
werden die betreffenden Pins zufaellig fuer JTAG benutzt?
ich denke nein zumindest sagt mir "jtag" nicht viel.
Gruß
Steffen
Lesezeichen