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?
Kann mir wirklich niemand helfen? Ich verzweifle hier langsam weiss echt nicht mehr was es noch sein könnte...
>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.
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.
>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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.