Guten Morgen. Ich habe ein kleines Programm geschrieben. Und es geht zum teil,aber wenn ich meinen Taster in der $sim drücke geht der Wert i nicht hoch. bitte um Hilfe von euch. mfg $sim $regfile = "m8def.dat" $hwstack = 82 $framesize = 68 $swstack = 68 ' Wir arbeiten hier mit 4 Meg $crystal = 4000000 ' Zuerst das LCD einstellen Config Lcdmode = Port Config Lcdbus = 4 Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4 Config Lcd = 16 * 2 Config Pinb.1 = Input Taste Alias Pinb.1 Pinb.1 = 1 Dim I As Integer Cls 'loesche das LCD Display Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte Lcd "hallo ."; Locate 2 , 1 I = 200 Lcd I Do If Taste = 1 Then I = I + 10 Do Waitms 10 Loop Until Taste = 1 End If Loop
Sorry für die Salamitaktik, aber das Locate 2,1 LCD I muss dann noch in die Do-Loop
danke schön es geht, so jetzt mache ich es noch um - 10 mit einem anderen Taster. vielen dank erst ein mal.
wie mache ich es das ich jetzt - 10 runterzählen kann ich bin am verzweifeln. also ich muss so lange taste plus drücken bis ich den wert habe, wenn ich dann was ändern möchte muss ich die minustaste drücken.
was haltet ihr davon $regfile = "M32def.dat" $crystal = 11000592 Config Timer1 = Timer , Prescale = 256 'Timer konfigurieren On Timer1 Timerroutine 'Timerinterrupt Subroutine zuweisen Enable Timer1 'Timer aktivieren Start Timer1 'Timer starten Config Lcdmode = Port Config Lcdbus = 4 'Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6 Config Lcd = 16 * 2 Cls Locate 1 , 1 Lcd " Uv-Belichter 1 " Locate 2 , 4 Lcd " Sascha " Config Porta.1 = Input Config Porta.2 = Input Config Porta.3 = Input Config Porta.4 = Input Config Portb.1 = Output Taster1 Alias Pina.1 Taster2 Alias Pina.2 Taster3 Alias Pina.3 Taster4 Alias Pina.4 Summer Alias Pinb.1 Taster1 = 1 Taster2 = 1 Taster3 = 1 Taster4 = 1 Dim Zaehler As Word Dim Halt As Bit Dim Halt1 As Bit Dim Start1 As Bit Dim Sek As Bit Zaehler = 200 Halt = 0 Halt1 = 0 Start1 = 0 Do If Taster1 = 0 Then Locate 2 , 2 Lcd "Time: " Locate 2 , 8 Lcd Zaehler End If Cursor Off Noblink If Halt = 0 Then If Taster2 = 0 Then Zaehler = Zaehler + 10 Halt = 1 End If End If If Taster2 = 1 Then Waitms 20 Halt = 0 End If If Zaehler > 500 Then Zaehler = 500 End If If Halt1 = 0 Then If Taster3 = 0 Then Zaehler = Zaehler - 10 Halt1 = 1 End If End If If Taster3 = 1 Then Waitms 20 Halt1 = 0 End If If Start1 = 0 Then If Zaehler < 150 Then Zaehler = 150 End If End If If Taster4 = 0 Then Start1 = 1 End If If Start1 = 1 Then Zaehler = Zaehler - 1 End If If Zaehler = 0 Then Start1 = 0 End If If Zaehler < 100 Then Locate 2 , 10 Lcd " " End If If Zaehler < 10 Then Locate 2 , 9 Lcd " " End If If Zaehler = 5 Then Summer = 0 End If If Zaehler = 3 Then Summer = 0 End If If Zaehler = 1 Then Summer = 0 End If Loop End Timerroutine: Rem Timer1 = 22595 Sek = 1 Timer1 = 65000 Return
Guten Morgen Wie kann man von der letzten anweißung ( Progamm ende in einer do .... loop Schleife. ) wieder zurück zum anfang kommen. gibt es da etwas für ? mfg
Sascha Möwert schrieb: > Summer Alias Pinb.1 > > Taster1 = 1 > Taster2 = 1 > Taster3 = 1 > Taster4 = 1 Hallo Sascha, dies hier ist schonmal nicht richtig. mit Pin... werden Eingänge abgefragt. Dein Summer soll sicher kein Eingang sein. Da Tasterx durch die Alias-Geshichte auch nur auf Pinx hinausläuft macht auch dies keinen Sinn. Das ist dann etwa so, als stehst du vor einem Klingeltaster und sagst: "jetzt sei gedrückt". Wahrscheinlich wolltest du die Pullups einschalten - schau dir an, wie das geht. > Timerroutine: > Rem > Timer1 = 22595 > Sek = 1 > Timer1 = 65000 > Return Was hast du hier vor? Du setzt den Counter erst auf Wert A und zwei Takte später auf Wert B. Das "Timer1 = 22595" ist an dieser Stelle offenbar sinnfrei. Die ganze If-Geschichte habe ich mir nicht angetan. Formatiere dein Programm vernünftig, so dass erkennbar wird, was zusammengehört. Gruß keinGast
nochmal ich, jetzt wo ichs sehe: welchen Sinn macht die Timer1-Routine überhaupt? abgesehen davon, dass sie ihre eigene Aufruffrequenz einstellt, setzt sie eine unbenutzte Variable. Sascha Möwert schrieb: > > Wie kann man von der letzten anweißung ( Progamm ende in einer do .... > loop Schleife. ) wieder zurück zum anfang kommen. gibt es da etwas für > ? > mfg Zu welchem Anfang willst du denn kommen? Eine do-loop-Schleife looped zwischen den beiden Wörtern "do" und "loop".
ja ich bin ja noch am anfang mit Bascom und atmega. ich übe ja noch, aber ich möchte wenn die zeit auf 0 ist das ich wieder am Cls Locate 1 , 1 Lcd " Uv-Belichter 1 " Locate 2 , 4 Lcd " Sascha " also über den do hin komme. Das er wieder von anfang an anfängt. wenn es so was gibt, geht.
nimm einfach 2 do-loop-Schleifen. do locate 1,1 : lcd "Uv-Belichter" locate 2,4 : lcd "Sascha" do hier machst du was du tun willst loop until Zeit = 0 loop end
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.