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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo Vitty, > > hier noch ein paar Worte zu <basic>curs = ((i - 1) And 3) + 1</basic>: > Wenn Du Dir mal ansiehst, wie man binär von 0 auf 19 zählt, und dabei auf die rechten beiden Bits > achtest > > Dez. Binär die zwei letzten Bits wieder in Dezimal > 00 000<b>00</b> 0 > 01 000<b>01</b> 1 > 02 000<b>10</b> 2 > 03 000<b>11</b> 3 > 04 001<b>00</b> 0 > 05 001<b>01</b> 1 > 06 001<b>10</b> 2 > 07 001<b>11</b> 3 > 08 010<b>00</b> 0 > 09 010<b>01</b> 1 > 10 010<b>10</b> 2 > 11 010<b>11</b> 3 > 12 011<b>00</b> 0 > ... ... .. > 19 100<b>11</b> 3 > > dann siehst Du, dass die immer wieder von 0 bis 3 zählen. Wenn Du also mit einer Variablen von 0 > bis 19 zählst, und davon nur die letzten beiden Bits nimmst, hast Du einen Zähler von 0 bis 3. > Das würde so aussehen: > <basic>For i = 0 To 19 > curs = i And 3 > Next i</basic> > > Du zählst aber von 1 bis 20 also folgende Erweiterung: > <basic>For i = 1 To 20 > curs = (i - 1) And 3 > Next i</basic> > > ...und Du willst als Ergebnis nicht 0 bis 3 haben sondern 1 bis 4 deswegen: > <basic>For i = 1 To 20 > curs = ((i - 1) And 3) + 1 > Next i</basic> > > Das <basic>And 3</basic> killt Dir dabei alle Bits, bis auf die gewünschen letzten zwei. Ich hoffe, > Dir die <i>Formel</i> etwas näher gebracht zu haben. > > Grüße > Jürgen > > > > > > hallo > > > > hab das curs = ((i - 1) AND 3) + 1 mal ausprobiert aber > > > > das cc pro bringt mir immer einen syntax fehler. > > > > dem gefällt das AND nicht. > > > > ich versteh die formel irgendwie auch nicht was soll denn > > > > des AND? > > > > > > Es muß ja auch "And" heißen und nicht "AND". Der Befehl "And" ist ein Und-Operation auf Bitebene. > > > Schau mal in die Anleitung unter Basic Bitoperationen. > > > > > > Gruss Peter > > > > > Hallo Peter und Vitty, > > > > 'tschuldigung, mein Fehler. Ich bin es noch nicht so gewohnt auf Groß- und Kleinschreibung zu > > achten. Meinem VB2008 ist das immer relativ egal :-) . > > > > Grüße > > Jürgen > > > > > > > > > > > > > > mfg > > > > > > > > > also die if bedingung soll erfüllt sein wenn i zwischen > > > > > 4 und 8 ist die 4 ausgeschlossen. > > > > > ich probier des von dir mal aus danke schonmal.... > > > > > > > > > > mfg > > > > > > > > > > > > > > > > > Hallo, > > > > > > > ich will die ausgabe immer 1 zeile nach unten schieben, > > > > > > > und dann wieder von vorn usw. > > > > > > > habe ein 4X16 display. > > > > > > > > > > > > > > Hab mir das so gedacht: > > > > > > > mein i geht von 1-20 > > > > > > > die ausgabe ist: > > > > > > > > > > > > > > zeile_1="ZELLE" > > > > > > > Einheit="V" > > > > > > > > > > > > > > Zeilenschub() > > > > > > > > > > > > > > LCD_Locate(curs,1) > > > > > > > LCD_WriteText(zeile_1) > > > > > > > LCD_Locate(curs,7) 'ausgabe der zellenwerte > > > > > > > LCD_WriteWord(i,2) 'auf dem bildschirm > > > > > > > LCD_Locate(curs,11) > > > > > > > LCD_WriteFloat(zellen(i),2) > > > > > > > LCD_Locate(curs,15) > > > > > > > LCD_WriteText(Einheit) > > > > > > > AbsDelay(2000) > > > > > > > Die funktion hab ich mir so gedacht: > > > > > > > Sub Zeilenschub() > > > > > > > If i<=4 Then > > > > > > > curs=i > > > > > > > ElseIf 4<i<=8 Then > > > > > > > curs=i-4 > > > > > > > > > > > > > > End If > > > > > > > > > > > > > > If 9<i<=12 Then > > > > > > > curs=i-8 > > > > > > > > > > > > > > ElseIf 12<i<=16 Then > > > > > > > curs=i-12 > > > > > > > End If > > > > > > > If 16<i<=20 Then > > > > > > > curs=i-16 > > > > > > > End If > > > > > > > > > > > > > > End Sub > > > > > > > > > > > > > > aber des funktioniert nur bis i=8 > > > > > > > dann is alles durcheinander. > > > > > > > > > > > > > > kann mir jemand helfen das prob zu lösen... > > > > > > > > > > > > > > mfg vitty > > > > > > > > > > > > Hallo Vitty, > > > > > > > > > > > > hast Du weiter oben im Text <basic>Dim i As Byte</basic> stehen? > > > > > > Ist das LCD 4 breit und 16 hoch oder 16 breit und 4 hoch? > > > > > > Ich bin nicht der Programmiererprofi, und habe aufs erste nicht den Durchblick bei der Bedingung > > > > > > <basic>ElseIf 4<i<=8 Then</basic>', kannst Du mir den Ausdruck <basic>4<i<=8</basic> mal > > > > > > vorrechnen? > > > > > > Soll curs abängig von i so sein: > > > > > > i curs > > > > > > 01 01 > > > > > > 02 02 > > > > > > 03 03 > > > > > > 04 04 > > > > > > 05 01 > > > > > > 06 02 > > > > > > 07 03 > > > > > > 08 04 > > > > > > 09 01 > > > > > > 10 02 > > > > > > 11 03 > > > > > > 12 04 > > > > > > 13 01 > > > > > > 14 02 > > > > > > 15 03 > > > > > > 16 04 > > > > > > 17 01 > > > > > > 18 02 > > > > > > 19 03 > > > > > > 20 04 > > > > > > > > > > > > das könnte man doch auch so erreichen: <basic>curs = ((i - 1) AND 3) + 1</basic> ...ganz ohne If. > > > > > > > > > > > > Grüße > > > > > > Jürgen > > > > > > > > > > > >