Re: Display text 1 zeile runterschieben brauche hilfe Kategorie: Programmierung Basic (von vitty - 4.12.2008 20:40) | ||
Als Antwort auf Re: Display text 1 zeile runterschieben brauche hilfe von Jürgen - 3.12.2008 21:31 | ||
| ||
ja habs jetz denk ich verstanden. vielen vielen dank für deine hilfe, bin da noch net so fit das ich da mit sowas hantiere... mfg > Hallo Vitty, > > hier noch ein paar Worte zu curs = ((i - 1) And 3) + 1: > 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 00000 0 > 01 00001 1 > 02 00010 2 > 03 00011 3 > 04 00100 0 > 05 00101 1 > 06 00110 2 > 07 00111 3 > 08 01000 0 > 09 01001 1 > 10 01010 2 > 11 01011 3 > 12 01100 0 > ... ... .. > 19 10011 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: > For i = 0 To 19 > curs = i And 3 > Next i > > Du zählst aber von 1 bis 20 also folgende Erweiterung: > For i = 1 To 20 > curs = (i - 1) And 3 > Next i > > ...und Du willst als Ergebnis nicht 0 bis 3 haben sondern 1 bis 4 deswegen: > For i = 1 To 20 > curs = ((i - 1) And 3) + 1 > Next i > > Das And 3 killt Dir dabei alle Bits, bis auf die gewünschen letzten zwei. Ich hoffe, > Dir die Formel 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 > > > > > > > curs=i-4 > > > > > > > > > > > > > > End If > > > > > > > > > > > > > > If 9 > > > > > > > curs=i-8 > > > > > > > > > > > > > > ElseIf 12 > > > > > > > curs=i-12 > > > > > > > End If > > > > > > > If 16 > > > > > > > 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 Dim i As Byte 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 > > > > > > ElseIf 4<i<=8 Then', kannst Du mir den Ausdruck 4<i<=8 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: curs = ((i - 1) AND 3) + 1 ...ganz ohne If. > > > > > > > > > > > > Grü�e > > > > > > Jürgen > > > > > > > > > > > > | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum