Archiv verlassen und diese Seite im Standarddesign anzeigen : timer programm umschreiben
hi,
ich bin neu hir!
ich habe jez folgendes programm geschrieben und funzt auch so wie von mir gedacht: ich betätige den taster und der timer zählt von 0 bis 3 und bleibt stehen. nun möchte ich manuel mit dem taster von 0 - 3 schalten.
kann mir einer sagen wie man das programmiert?^^ denn alles was ich versucht habe klapt nicht
$regfile = "m8def.dat"
$framesize = 60
$swstack = 60
$hwstack = 60
$crystal = 8000000
$baud = 9600
Config Portb.0 = Output
Led Alias Portb.0
Config Pind.7 = Input
Taster Alias Pind.7
Portd.7 = 1
Config Portc.5 = Output
Led1 Alias Portc.5
Config Portc.4 = Output
Led2 Alias Portc.4
Config Portc.3 = Output
Led7 Alias Portc.3
Config Portc.2 = Output
Led3 Alias Portc.2
Config Portc.1 = Output
Led4 Alias Portc.1
Config Portc.0 = Output
Led6 Alias Portc.0
Config Portb.1 = Output
Led5 Alias Portb.1
Dim Angeschaltet As Bit
Do
If Taster = 0 And Angeschaltet = 0 Then
Led1 = 1
Led2 = 1
Led3 = 1
Led4 = 1
Led5 = 1
Led6 = 1
Led7 = 0
Angeschaltet = 1
Waitms 1000
Led1 = 0
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 1
Led6 = 1
Led7 = 0
Angeschaltet = 1
Waitms 1000
Led1 = 1
Led2 = 0
Led3 = 1
Led4 = 1
Led5 = 0
Led6 = 1
Led7 = 1
Angeschaltet = 1
Waitms 1000
Led1 = 1
Led2 = 0
Led3 = 0
Led4 = 1
Led5 = 1
Led6 = 1
Led7 = 1
Waitms 1000
Elseif Taster = 0 And Angeschaltet = 1 Then
Led1 = 0
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 0
Led6 = 0
Led7 = 0
Angeschaltet = 0
Waitms 1000
End If
Waitms 100
Loop
End
PS: kann mir ma einer sagen wie ich die programme in diese schichen 2 zeilen fenster pachen kann, dann ist der bericht nich immer so riesig
warum setzt du Angeschaltet auf 1 immer wieder?
was macht das programm den jetzt falsch
programm........
und dann [/code]
gib mal dann das ganze programm rein
tante edit port.7=1 am anfang vor der do loop
da hab ich jez iwi nich drauf geachtet...
wiso funktioniert es trozdem?^^
falsch macht das programm was ich da gepostet habe nichts, ich schaffs nur nich das programm so zu ersweitern das ich mit dem taster nicht den count down aktivire, sondern das man die nummer manuell mit dem taster ohne einen timer weiterschalten kann
kann das sein das der taster nutzlos ist? es wird nur gefragt ob taster=0 ist und nie 1
also: es passiert nix, sobalt ich den knopf betätige zählt er von 0-3 und bleibt bei 3 stehen
will aber nicht von 0-3 gezählt haben sondern will von 0-3 mit dem taster selber schalten
Elseif Taster = 1 And Angeschaltet = 1 Then
Led1 = 0
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 0
Led6 = 0
Led7 = 0
Angeschaltet = 0
Waitms 1000
End If
so müsste es gehen wozu hast du die variable Angeschaltet
wozu hast du die variable Angeschaltet
weil ich noch ein blutiger anfänger bin^^
sag mir mal bitte was eine variable ist ich habe keine ahnung.
also das programm tut genau das selbe wie das oben
$regfile = "m8def.dat"
$framesize = 60
$swstack = 60
$hwstack = 60
$crystal = 8000000
$baud = 9600
Config Portb.0 = Output
Led Alias Portb.0
Config Pind.7 = Input
Taster Alias Pind.7
Portd.7 = 1
Config Portc.5 = Output
Led1 Alias Portc.5
Config Portc.4 = Output
Led2 Alias Portc.4
Config Portc.3 = Output
Led7 Alias Portc.3
Config Portc.2 = Output
Led3 Alias Portc.2
Config Portc.1 = Output
Led4 Alias Portc.1
Config Portc.0 = Output
Led6 Alias Portc.0
Config Portb.1 = Output
Led5 Alias Portb.1
Dim Angeschaltet As Bit
Do
If Taster = 0 And Angeschaltet = 0 Then
Led1 = 1
Led2 = 1
Led3 = 1
Led4 = 1
Led5 = 1
Led6 = 1
Led7 = 0
Angeschaltet = 1
Waitms 500
Led1 = 0
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 1
Led6 = 1
Led7 = 0
Angeschaltet = 0
Waitms 500
Led1 = 1
Led2 = 0
Led3 = 1
Led4 = 1
Led5 = 0
Led6 = 1
Led7 = 1
Angeschaltet = 1
Waitms 500
Led1 = 1
Led2 = 0
Led3 = 0
Led4 = 1
Led5 = 1
Led6 = 1
Led7 = 1
Angeschaltet = 0
Waitms 500
Elseif Taster = 1 And Angeschaltet = 1 Then
Led1 = 0
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 0
Led6 = 0
Led7 = 0
Angeschaltet = 1
Waitms 500
End If
Loop
End
If taster=1 then Angeschaltet=1
If Angeschalten=1 an taster=0 then Angeschaltet=0 :Zaehler=Zaehler+1
If Zaeler=1 then
Led1 = 1
Led2 = 1
Led3 = 1
Led4 = 1
Led5 = 1
Led6 = 1
Led7 = 0
else if zaeler=2 then
Led1 = 0
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 1
Led6 = 1
Led7 = 0
else if zaehler=3 then
Led1 = 1
Led2 = 0
Led3 = 1
Led4 = 1
Led5 = 0
Led6 = 1
Led7 = 1
else if zaehler=4 then Zaehler=0
endif
und so kann ich manuel die zahl weiterschalnten?
ich erst grad verstanden was du mit dem taster machen willst. ich eine verwendung gefunden für angeschaltet.
eine Variable ist ähm z.B. x= 10 dann ist x eine Variable der den wert 10 zugewisen wurde wenn man dann schreibt x=11 dann wird x elf zugewiesen
wer es genau wissen will guckt da rein http://de.wikipedia.org/wiki/Variable_(Programmierung)
aber wenn man sie mit dim deklatiert gibt es immer wieder unterschiede in den variablen typen (string, integer, byte, bit .....) müste irgendwo mal ne zusammen fassung bei bascom dabei sein
so ähnlich kann aber nicht genau sagen ob es geht ich hab es nicht getestet. irgendwie überschneiden wir unst ständig
jez musde mir nurnoch sagen wie ich "an taster" und "zaeler" in meine syntax bekomme^^ der kennt die begriffe ja nicht.
Config Pind.7 = Input
Taster Alias Pind.7
Portd.7 = 1
taster müsste er kennen
und zaehler mit dim zaehler as integer
If Angeschalten=1 an taster=0 then Angeschaltet=0 :Zaehler=Zaehler+1
soll das "an" ein "and" sein?
ok mein programm siet wie folgt aus
$regfile = "m8def.dat"
$framesize = 60
$swstack = 60
$hwstack = 60
$crystal = 8000000
$baud = 9600
Config Portb.0 = Output
Led Alias Portb.0
Config Pind.7 = Input
Taster Alias Pind.7
Portd.7 = 1
Config Portc.5 = Output
Led1 Alias Portc.5
Config Portc.4 = Output
Led2 Alias Portc.4
Config Portc.3 = Output
Led7 Alias Portc.3
Config Portc.2 = Output
Led3 Alias Portc.2
Config Portc.1 = Output
Led4 Alias Portc.1
Config Portc.0 = Output
Led6 Alias Portc.0
Config Portb.1 = Output
Led5 Alias Portb.1
Dim Angeschaltet As Bit
Dim Zaehler As Integer
Do
If Taster = 1 Then
Angeschaltet = 1
If Angeschaltet = 1 And Taster = 0 Then
Angeschaltet = 0 : Zaehler = Zaehler + 1
If Zaehler = 1 Then
Led1 = 1
Led2 = 1
Led3 = 1
Led4 = 1
Led5 = 1
Led6 = 1
Led7 = 0
Else If Zaehler = 2 Then
Led1 = 0
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 1
Led6 = 1
Led7 = 0
Else If Zaehler = 3 Then
Led1 = 1
Led2 = 0
Led3 = 1
Led4 = 1
Led5 = 0
Led6 = 1
Led7 = 1
Else If Zaehler = 4 Then
Zaehler = 0
End If
Loop
End
aber irgentwas ist noch mit der syntax, der compiller akzeptiert das nicht
und wo? (must einfach dort wo die fehler gezeigt werden duobleclick und markiert er die zeile mit fehler rot)
ich glaub ich hab ihn gefunden
Do
If Taster = 1 Then Angeschaltet = 1
If Angeschaltet = 1 And Taster = 0 Then
Angeschaltet = 0
Zaehler = Zaehler + 1
end if
If Zaehler = 1 Then
noch ein edit
es sind keine syntax fehler mehr drin weis aber nich ob es geht sollte es aber
$regfile = "m8def.dat"
$framesize = 60
$swstack = 60
$hwstack = 60
$crystal = 8000000
$baud = 9600
Config Portb.0 = Output
Led Alias Portb.0
Config Pind.7 = Input
Taster Alias Pind.7
Portd.7 = 1
Config Portc.5 = Output
Led1 Alias Portc.5
Config Portc.4 = Output
Led2 Alias Portc.4
Config Portc.3 = Output
Led7 Alias Portc.3
Config Portc.2 = Output
Led3 Alias Portc.2
Config Portc.1 = Output
Led4 Alias Portc.1
Config Portc.0 = Output
Led6 Alias Portc.0
Config Portb.1 = Output
Led5 Alias Portb.1
Dim Angeschaltet As Bit
Dim Zaehler As Integer
Do
If Taster = 1 Then Angeschaltet = 1
If Angeschaltet = 1 And Taster = 0 Then
Angeschaltet = 0
Zaehler = Zaehler + 1
End If
If Zaehler = 1 Then
Led1 = 1
Led2 = 1
Led3 = 1
Led4 = 1
Led5 = 1
Led6 = 1
Led7 = 0
End If
If Zaehler = 2 Then
Led1 = 0
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 1
Led6 = 1
Led7 = 0
End If
If Zaehler = 3 Then
Led1 = 1
Led2 = 0
Led3 = 1
Led4 = 1
Led5 = 0
Led6 = 1
Led7 = 1
End If
If Zaehler = 4 Then Zaehler = 0
Loop
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.