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] 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 Passender Link: das datenblatt des drehimpulsreglers |
Antwort schreiben |