Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > Hallo, ich habe von WEMA ein Programm erhalten aber bekomme meinen Drehgeber nicht zum laufen... > > Vielleicht macht sich ja mal jemand die Mühe und kann den Quellcode bei sich ausprobieren??!! > > Also ich besitze einen Drehgeber von Fa. Conrad und gehe an den Timer3 Port (FRQ1) und den Host > > Port, habe auch die Interfaceschaltung im Einsatz und der Taster geht auf P1H0. > > Ich möchte halt einfach nur dass mir ein Wert ausgegeben wird.... > > > > > > > > <code> > > long position, position_alt; > > byte min,max,wert; > > > > //------------------------------------------------------------------------ > > function abfrageDrehgeber (int wert,int min,int max,byte cur) > > //------------------------------------------------------------------------ > > > > { lcdext.init(); > > while not inkremental.getPushKey()// alle nachfolgenden Befehle werden solange > > // wiederholt, bis der Drehknopf gedrückt wird,. Dann wird die ganze > > // Funktion verlassen > > { > > position=inkremental.get_position(); > > if position < position_alt-10 //Wird der Drehregler nicht betätigt, ändern > > //sich die Werte auch nicht und die IF-Funktion wird nicht ausgeführt > > { > > position_alt=position; > > wert=wert-1; > > if wert==min-1 wert=max; > > lcdext.goto(1,cur); > > lcdext.zahl2(wert); > > lcdext.cursorleft(); > > } > > else if position > position_alt+10 > > { > > position_alt=position; > > wert=wert+1; > > if wert==max+1 wert=min; > > > > lcdext.goto(1,cur); > > lcdext.zahl2(wert); > > lcdext.cursorleft(); > > } > > } > > } > > > > //------------ > > thread main > > //------------ > > { > > abfrageDrehgeber(50,2,99,3); > > inkremental.init(8); > > halt; > > > > }</code> > > Hallo Markus, > > ich hatte es ja bereits erwähnt, aber um grundsätzliche Dinge zu wissen, solltest Du doch bitte zuerst > das Handbuch in Ruhe durcharbeiten. Ohne dem geht es nicht: > Du hast im mainthread ZUERST die Funktion "abfrageDrehgeber" aufgerufen und dann erst > den inkrementalregler initiiert. Es MUSS umgekehrt sein. Außerdem setzt man das lcdext.init > nur einmal zu Beginn ein und nicht jedesmal beim Aufruf der Funktion, also z.B. als erster Befehl > im Mainthread. > > Bei mir funktioniert die Abfrage anstandslos, ich habe jedoch auch einen Regler mit entspr. Board > direkt bei Andre gekauft ("Werbung aus") ;-)) - da konnte von den Anschlüssen eigendlich auch > nicht viel schiefgehen. > > Gruß, > Heiko (wema)