Hallo Leute Hab ein Problem und zwar die Auswertung von 2 Encodern ging noch ohne Probleme und mit 3 habe ich nur Probleme. Die Werte sollen nur bei Änderung gesendet werden. werden aber trotz das keine Änderung vorhanden ist durchgehend gesendet. Woran könnte das liegen? lg Peter
So einen Fehler gefunden. DDRB = 0xFF; Aber sobald ich einschalte hab ich einen wert von über 16000 auch wenn ich reset betätige ändert sich der wert jeweils um 1.
Peter schrieb: > Aber sobald ich einschalte hab ich einen wert von über 16000 auch wenn > ich reset betätige ändert sich der wert jeweils um 1 Welcher Wert? Was würdest du erwarten? Was geht und was nicht? Was ist eigentlich die Frage? Lies mal deine Posts, wie wenn dir dein Problem unbekannt wäre (so geht es allen anderen). Und: verstehst du auch nicht, was das Problem ist? Welche Information fehlt?
#define ENCODER_ANZAHL 3 volatile int enc_delta[ENCODER_ANZAHL-1]={0,0,0}; // -128 ... 127 Nach meinen C-Kenntnissen ist das Array zu klein.
PittyJ schrieb: > Nach meinen C-Kenntnissen ist das Array zu klein. Auch das hier: static char enc_last[ENCODER_ANZAHL-1] = {0x01,0x01,0x01}; Aber sollte da nicht wenigstens eine Warnung kommen, wenn ein 2er Array mit 3 Werten initialisiert wird?
Also als Standardwert müsste der Mikrocontroller nach dem einschalten 1 1 1 x senden. Wenn ich ein Array mit test[2] initialisiere habe ich dann nicht die werte test[0] test[1] test[2] ? Das würde vll was erklären.
Nö Die IndexGRÖSSE fängt bei 1 an, der INDEX bei 0. Also char array[2] hat array[0] und array[1]
Ah ok muss ich nachher mal ausprobieren. Danke man lern immer dazu :-)
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.