
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> > > also ich hab ein neues programm geschrieben jedoch bleib die unit wenn ich etwas schneller drehe hängen woran liegt des kann mir des jmd sagen... > > > > > > #set > > > > > > if (a xor b) then > > > goto set > > > else > > > aset=a > > > bset=b > > > goto loop > > > end if > > > > > > goto set > > > > Hallo, > > > > Du hast das Programm geschrieben und dadurch ist Dir die Funktion in jeder Zeile bekannt. > > Diese Information gibst Du uns nicht. Wir sollen uns zeitaufwändig abmühen. > > Wenn Du die Zeilen kommentierst, wird es auch für Dich klarer und oft findet man so Fehler. > > > ne diesen schritt machen ich um den zustand zu speichern 00 oder 11 > > > Mir scheinen die Rücksprünge (Schleifen) "goto set" verdächtig. > > Wenn a und b beide ON sind oder beide OFF sind, bleibt das Programm inder Schleife.(?) > > > > MfG ManfredW > > > als link hab ich mal das datenblatt eingefühgt > > also hier ist es was besser beschrieben > > > define taste1 port[5] > define a port[4] > define b port[3] > define set byte[3] > define aset bit[4] > define bset bit[5] > define nu word[1] > > nu=0 > > aset=a > bset=b > > lcd.init > #loop > > > > lcd.pos 1,4 > lcd.print nu > > if (a xor aset) xor (b xor bset) then 'vergleich den eingängen a/b und den gesetzten zuständen > goto wahl 'wenn ungleich dann gehe zu wahl > else > goto loop > end if > > > goto loop > > #wahl ' von welchen zustand gewechselt ( 11 oder 00) > if (aset=on) and (bset=on) then 'wenn gesetzte zustand 11 war gehe zu eins > 'goto set > goto eins > end if > > if (aset=off) and (bset=off) then 'wenn gesetzte zustand 00 war gehe zu null > 'goto set > goto null > end if > > goto loop > > > > #null > if (a=off)and(b=on) then 'erkennen in welche richtung in dem fall ccw (links) > nu=nu-1 ' nu wert um ein verinngern > goto set > end if > > if (a=on)and(b=off) then 'erkennen in welche richtung in dem fall cw (rechts) > nu=nu+1 ' nu wert um eins erhöhen > goto set > end if > goto null > > #eins > if (a=off)and(b=on) then 'erkennen in welche richtung in dem fall cw (rechts) > nu=nu+1 ' nu wert um eins erhöhen > goto set > end if > > if (a=on)and(b=off) then 'erkennen in welche richtung in dem fall ccw (links) > nu=nu-1 ' nu wert um ein verinngern > goto set > end if > goto eins > > #set > > if (a xor b) then 'wenn eingang a und b nicht gleichsind gehe zu set > goto set > else 'wenn gleich sind die zustände speichern ( 00 oder 11) > aset=a > bset=b > goto loop > end if > > goto set |
| Antwort schreiben |