Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Display text 1 zeile runterschieben brauche hilfe Kategorie: Programmierung Basic (von Jürgen - 3.12.2008 21:31)
Als Antwort auf Re: Display text 1 zeile runterschieben brauche hilfe von Jürgen - 1.12.2008 6:42

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:

Re: Display text 1 zeile runterschieben brauche hilfe (von vitty - 4.12.2008 20:40)