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 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
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board
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: