Forum: Mikrocontroller und Digitale Elektronik AT90CAN64 löst Reset aus


von Stefan R. (beff89)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

ich habe ein riesen Problem und komme nicht weiter.
In meinem Code (siehe Anhang) lese ich diverse Schalter ein und steuere 
ein LCD Display und LEDs an.

Nun habe ich ein Problem mit einem Schalter und zwar:

Der Schalter an PortD Pin0 (im Code heisst er "minus") löst mir immer 
wieder einen Reset aus und mein Code sprint wieder an den Anfang der 
Main Routine. Ich weiss nicht warum dies passiert ich lese den Schalter 
gleich wie viele andere auch ein und bei den anderen passiert dies 
nicht!!

Die SPeisung vom MC sakt nicht ab das habe ic kontrolliert und auch am 
RESET Pin ist kein Reset zu erkennen, was könnte dies also sein?

von Stefan R. (beff89)


Lesenswert?

Kann mir wirklich niemand helfen?
Ich verzweifle hier langsam weiss echt nicht mehr was es noch sein 
könnte...

von holger (Gast)


Lesenswert?

>Der Schalter an PortD Pin0 (im Code heisst er "minus") löst mir immer
>wieder einen Reset aus

Wenn du die Routine zum lesen mal rausnimmst und immer
noch Reset ausgelöst wird hast du ein Hardwareproblem.

Schau dir mal diese Stelle genauer an:
Ich hab da zur besseren Übersicht ein bisschen was weggelöscht.
1
    case 7: {
2
          if (Minus)
3
          {
4
            MotorPowerFr--;
5
          }
6
          uint8_t i=0;
7
          while ( i < MotorPowerFr)
8
          {
9
            lcd_data(0b11111111);
10
            i++;
11
          }

Was ist wenn  MotorPowerFr 0 ist und du eins abziehst?
Dann wird es 0xFF und du machst 255 mal lcd_data().
Evtl. lang genug für einen Watchdog Reset.
Das ganze dann entsprechend auch für MotorPowerFr++;
Und die anderen Stellen wo du es genauso machst.

von Stefan R. (beff89)


Lesenswert?

stimmt das habe ich nicht abgefangen müsste man sicher noch machen. 
Aber, der Reset wurde auch ausgelöst wenn minus noch nicht 0 war habe 
dies kontrolliert.

Hardwarefehler wäre komisch da ich noch 9 andere Taster genau gleich 
einlese und nirgends Probleme habe ausser bei diesem. Zudem könnte ja 
ein Hardwareproblem eigentlich nur dazu führen, dass die 
Versorgungsspannung zu tief kommt und dadurch ein Reset ausgeführt wird, 
dies habe ich jedoch mit dem Oszi kontrolliert.

von holger (Gast)


Lesenswert?

>Hardwarefehler wäre komisch da ich noch 9 andere Taster genau gleich
>einlese und nirgends Probleme habe ausser bei diesem. Zudem könnte ja
>ein Hardwareproblem eigentlich nur dazu führen, dass die
>Versorgungsspannung zu tief kommt und dadurch ein Reset ausgeführt wird,
>dies habe ich jedoch mit dem Oszi kontrolliert.

Es reicht ein sehr kurzer Einbruch. Vieleicht hast du den nicht
erfasst. Also Routine zum abfragen des Tasters rausnehmen und schauen
ob es immer noch zum Reset kommt. Das ist jetzt deine Aufgabe.

von Stefan R. (beff89)


Lesenswert?

Wer ich gleich morgen machen ;)

Ich habe zwar mit Oszi den Trigger eingestellt das man auch kleine 
Einbrüche erkennen sollte (auf Flanken eingestellt).
Werde also morgen die ganze Printplatte nochmals checken.

von Stefan R. (beff89)


Lesenswert?

War wirklich ein Hardware Problem. Habe nun das C welches parallel zum 
Schalter ist (zum entprellen) ausgelötet und schon hat funktioniert.

Finde ich zwar komisch, da ich bei allen Schaltern die gleichen C s 
verwendet habe aber nur bei diesem Schalter das passiert ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.