PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Stoppuhr in Minuten ?



TheRiddler34
17.01.2009, 18:38
Ich wollte mal fragen wie man eine Stopuhr macht die in Minutenzählt ?

Ich hab eine die Zählt nur Sekunden *Ist ja auch nicht sondelrich schwer* aber wie mache ich es das es Minuten zählt?

Also man drückt Start und dann zählt es in Minuten ?
Brauche das für einen AFK Stuhl da ich öfters mal AFK Bin :D

Alex22
18.01.2009, 01:21
Das ist eigentlich ganz einfach:
Timer --- Run -> Button
--|--|_
--|----|_A__-----__B___Constant Value: 60
--|-----------|---|
--|-----Greater Then<-A-&-Clk----Increcement<---Screen
--|__________|
------Reset------------


Sobald der Timer bis 60 gezählt hat, gibt der Greater Than Chip 1 aus. Damit aktiviert er den Increcement Chip, resetet den Timer und der die Zahl geht um eins hoch.
http://www.abload.de/img/gm_flatgrass0019a3ge.jpg

Natürlich fehlt hier noch ein Reset Knopf für die Minuten, aber das sollte ja nur zeigen wie man sowas machen kann.

LittleSnipes
18.01.2009, 13:00
Mh das geht einfacher

http://garrysmod.de/forum/attachment.php?attachmentid=1742&stc=1&d=1232283569

Einen Timer mit einem Toggle Button, dann den Output des Timers durch 60 teilen und das Ergebnis abrunden.


&14~313~165~0~chip~in1^1&0~263~120~1~app~onv^1~off^0~togg^true&3~318~235~2~chip~in1^0~in2^3&5~263~255~3~chip~value^60&1~404~226~4~app~in1^5~onv^minutes&10~340~280~5~chip~in1^2
http://axhibition.com/wiremod.php

Alex22
18.01.2009, 14:08
Mh das geht einfacher

http://garrysmod.de/forum/attachment.php?attachmentid=1742&stc=1&d=1232283569

Einen Timer mit einem Toggle Button, dann den Output des Timers durch 60 teilen und das Ergebnis abrunden.


&14~313~165~0~chip~in1^1&0~263~120~1~app~onv^1~off^0~togg^true&3~318~235~2~chip~in1^0~in2^3&5~263~255~3~chip~value^60&1~404~226~4~app~in1^5~onv^minutes&10~340~280~5~chip~in1^2
http://axhibition.com/wiremod.php

Dem Floor Chip brauch man in GMod eigentlich nicht: Screens können auch runden.

LittleSnipes
18.01.2009, 14:11
Dem Floor Chip brauch man in GMod eigentlich nicht: Screens können auch runden.

Ja, aber der Screen könnte falsch runden und dann wären schon nach 30 Sekunden 1 Minute vergangen. Darum lieber auf Nummer sicher gehen und ein Extra Gate machen.

TheRiddler34
18.01.2009, 19:12
WoW Thx für die Antworten ^_^

WeltEnSTurm
18.01.2009, 21:30
Jaa es geht um nen simplen Sekunden -> Minuten umwandler und schon wolln sie alle angeben :gmod:
Neue aufgabe: Er soll minuten UND sekunden anzeigen! Also zb 1,35

kartoffel
19.01.2009, 13:10
Einfach zwei Screens machen.
Dann holt der Sekunden-Screen sich den Output vom Timer,
Der Umwandler auch und der Umwandler packt dann den Output aufn Screen. Dürfte doch so schwer nicht sein, denke ich...ich probier es nachher mal aus, jetzt geht es erst einmal in die Badewanne :D

WeltEnSTurm
19.01.2009, 13:14
Einfach zwei Screens machen.
Dann holt der Sekunden-Screen sich den Output vom Timer,
Der Umwandler auch und der Umwandler packt dann den Output aufn Screen. Dürfte doch so schwer nicht sein, denke ich...ich probier es nachher mal aus, jetzt geht es erst einmal in die Badewanne :D

das zeigt dann bei 90 sekunden dann aber 1,90 an. Ich will 1,30.

kartoffel
19.01.2009, 19:02
Du sollst den Timer ja auch nach 60 Secs resetten.
Die Minutenanzahl packste in nen Memory Gate.

WeltEnSTurm
20.01.2009, 11:17
Toll, und wenn ich dann mal random die zahl 1359 als sekunden angebe? Ich will ne schöne formel keine increment tricks.

Alex22
20.01.2009, 12:48
Toll, und wenn ich dann mal random die zahl 1359 als sekunden angebe? Ich will ne schöne formel keine increment tricks.

Das würde man dann in Expression(2) machen. Allerdings finde ich meine Methode immernoch am schönsten.

WeltEnSTurm
20.01.2009, 12:54
Irgendwie gehts ganz einfach, minuten: Sec/60, runden
sekunden: sec - sec/60 runden *60

PytonB!tch
20.01.2009, 15:33
Also so hätte ich es gemacht:

Ich brauche:
Button (toggle)
Button (normal)
Delay
Constant Value (1; 60)
Round
Increment/Decrement
Screen (2 stück)

Delay
Clk -> Button (toggle)
delay (also diese zeitangabe) -> Constant Value (60)

Round
A -> delay (time elapsed)

Screen1
A -> Round

Screen2
A -> Increment/Decrement

Increment/Decrement
Increment -> Delay (dorr mir fällt heute kaum was ein D: ich meine diese option 1 bei 0 skunden HELFT MIR D:)
Decrement -> Button (normal)


Hoffe das wars
Nun noch den ersten button pushen!
Aber achtung! Wenn ihr die Zeit stoppen wollt läuft das delay aber noch eine minute weiter x)...
Ich bin heute nicht so fürs denken :D

stefan1994
20.01.2009, 16:05
ok also du klcikst auf expression2 und schreibst da folgenden code hinein:



@name Timer Controler by Big Pommes
@inputs Start Stop Reset
@outputs Run Reset

if(Start == 1)
{
Run = 1
}

if(Stop == 1)
{
Run = 0
}


if(Reset == 1)
{
Run = 0
Reset = 1
}
else
{
Reset = 0
}



so dann baust du 2 Buttons einen für start und einen für reset optional auch noch einen 3 button um die zeit zu stopen
dann noch ein timer und time/date decoder


von expression Button, Stop und Reset zu den buttons
vom timer reset zum expression reset und timer start oder wie das heißt zu expression run
dann vom time/date decoder zum timer
von denn screens zum time/date decoder

sollte eigendlich funktionieren :P


MfGreetz. Stefan

Aky
24.01.2009, 12:02
Warum denn eine Stopuhr so kompliziert Stefan?

@ Weltensturm

Expression 2 Code

@name Stopuhr by Aky
@inputs Start Reset
@outputs Zeit
@persist Count Minuten Sekunden


if(Start) {
interval(1000)
Count += 1
Sekunden += 1

if(Count == 59) {
Sekunden = 0
}
if(Count == 59) {
Minuten += 1
}
}

if(Reset) {
Minuten = 0
Sekunden = 0
Count = 0
}

Zeit = Minuten+(Sekunden/100)


Benötigt: Expression Gate 2; Button mit Toggle; Button ohne Toggle; Screen

Wire: Den Start Input vom Gate zum Button MIT Toggle, Den Reset Input zum anderen Button und den Screen zum Output vom Gate.

Bild:

http://img407.imageshack.us/img407/8093/gmflatgrassrevolution00gr4.th.jpg (http://img407.imageshack.us/my.php?image=gmflatgrassrevolution00gr4.jpg)
( Ich habe hier einen Textscreen verwendet da der normal Screen aus irgendeinem Grund zwei 9en hinten an die Sekunden drangehangen hat. Ich habe jedoch nicht den Punkt zwischen Minuten und Sekunden durch den Textscreen erzeugt.)

Waldi
25.01.2009, 16:32
Ich würde es wie Aky machen, aber würde lieber diesen code nehmen:

@name Stopuhr by Waldi
@inputs Start Reset
@outputs Sekunden Minuten
@persist Count Minuten Sekunden


if(Start) {
interval(1000)
Count += 1
Sekunden += 1

if(Count == 60) {
Sekunden = 0
Count = 0
Minuten += 1
}

}

if(Reset) {
Minuten = 0
Sekunden = 0
Count = 0
}

Sekunden = Sekunden
Minuten = Minuten


Du brauchst: einen Button mit toggle, einen Button ohne toggle, 2 screens.
Dann nur noch alles wiren und fertig.

Aky
25.01.2009, 16:48
Schon klar Waldi, normal würde ich es auch so machen, aber es ging ja drum in dem Format Minuten.Sekunden, also 1.30 ;).
Deswegen hab ich das so gemacht :D.

WeltEnSTurm
25.01.2009, 19:40
Ich will keinen eigenen Timer, ich will nen Code der mir aus Sekunden Sekunden und Minuten macht D:

Aky
26.01.2009, 16:01
Meinst du sowas wie den Time/Date Decoder?

stefan1994
27.01.2009, 15:12
hi


also ich habs ganz einfach deshalb so kompliziert da

1.) wenn sich jemand mit wire exprssion sich nicht auskennt den code nicht versteht und es sicher liber mit gates machen würde

2.) man kann ja alles in ein exprssion backen aber wenn man nun zb einen calc baut und sich den dann jemand anschaut dann sieht das einfach kacke aus wenn da nur 1 exprssion ist und sonst nur buttons und screens


MfGreetz. Stefan

Aky
27.01.2009, 15:36
Sprichst du da etwa auf meinen calc an :-O
Kommt mir so vor :D

Naja, is ja nu auch egal ;)

stefan1994
27.01.2009, 16:20
Hi

nö mir is calc nur gerade eingefallen weil ich selbst gerade einen bau xD

PS: der time decoder der aus sekunden minuten und sekunden macht ist gleich fertig


MfGreetz. Stefan


€dit:

da ist der decoder code:


@name Time decoder
@inputs SekundenIn Reset
@outputs SekundenOut Minuten
@persist X Sekunden

Minuten = X

if (SekundenIn == 60 * (X + 1))
{
X = X + 1
}
if (SekundenIn < 60)
{
Sekunden = SekundenIn
}
else
{
Sekunden = SekundenIn - 60 * X
}

if (Reset == 1)
{
X = 0
}

if (SekundenIn == 0)
{
X = 0
}

if (SekundenIn > 60 * (X + 1))
{
X = X + 1
}

SekundenOut = floor(Sekunden)



und noch was

Irgendwie gehts ganz einfach, minuten: Sec/60, runden
sekunden: sec - sec/60 runden *60

sekunden = 300

300 - 300 / 60
300 - 5
295

295 runden = 295

295 * 60 = 17700



sekunden = 164

164 - 164 / 60
164 - 2,73333
161,26666

161,2666 runden = 161

161 * 60 = 9660

und wo sind da jetzt die sekunden?