PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Taschenrechner, Stopuhr !!!!plz SCHNELL!!!



Der noob
16.08.2004, 13:53
ICh muss einen Taschen rechner oder eine stopuhr programmieren kriege aber beides nicht hin könnt ich mir bitte helfen!!!!

define plus byte
define minus byte
define mal byte
define geteilt byte
define zahl1 byte
define zahl2 byte
define port1 port[1]
define port2 port[2]
define port3 port[3]
define port4 port[4]
define a byte

a = /,*,+,-

input zahl1
input a
input zahl2

If a = + then goto Plus

#Plus
plus = zahl1 + zahl2
print

#minus

#mal

#geteilt


und das geht alles nicht und ich weiss nicht wieso!!!

bin dankbar für jede hilfe !Danke im voraus! =D>

Florian
16.08.2004, 13:57
Hi noob!
Warum musst Du das machen?
Hausaufgabe? ;o)

Naja, ich kann Dir eh nicht viel helfen, ich bin AVR-ASM-Progger! *lol*

Viel Glück! :o)

Matthias
16.08.2004, 13:59
"a = /,*,+,-" ???

Ich würde den entsprechenden ASCII statt z.B. "+"
nehmen.

Ne Stoppuhr wäre einfacher...

Der noob
16.08.2004, 14:10
Vielen Vielen dank du bist mein Lebensretter muss das Prog morgen fertig haben und habe keinen Plan wie!!!!!

Hasste ICQ ????

Meine Nummer ist : 344208492

O:) !!!thx nochmal!!! O:)

Matthias
16.08.2004, 14:10
define x byte

#loop

get x
if not x=1 then goto loop


#count

second=0
minute=0
hour=0

get x
if not x=2 then goto loop

put second
put minute
put hour

goto loop

Matthias
16.08.2004, 14:12
Ich hab dich gerade geadded.

Die uhr wird mit 1 gestartet und mit 2 gestoppt.

Matthias
16.08.2004, 14:16
Das hab ich eigentlich für die CC geschrieben, zum ansprechen eines terminalprogramms, ich schreib's schnell um. geh doch einfach mal ICQ-Online.

Der noob
16.08.2004, 14:18
bin bei der arbeit und icq2go startet der nicht bin so um 17 uhr zuhause mann bin on!!!
wie alt biste eigentlich???
Das du das sogut kannst!!!

der noob
16.08.2004, 14:23
Du bist 14 ???
wie lange machste das schon???
ja stimmt master whppy!!!
echt lol !!!

Matthias
16.08.2004, 14:25
ein paar jahre oda so...

auf meiner C-control funktionierts. Hast du das programm auf deine geladen? ein passendes terminal könnte ich dir schicken.

der noob
16.08.2004, 14:26
Ich mache das seit letztem Freitag und ich sollte die Programm schreiben damit ich das mit meinem Chef auf die C-control laden kann!!

Matthias
16.08.2004, 14:27
Ich kann's auch so machen, dass man mittels 2 tasten Startet/Resettet

der noob
16.08.2004, 14:28
fänd ich sehr net!!!

Matthias
16.08.2004, 14:28
Wo arbeitest du denn?

Soll man das Teil nur in verbindung mit einem Rechner benutzen können, oder wie stellst du dir das vor?

der noob
16.08.2004, 14:31
Ich mache das jetzt seit drei tagen kann so ein paar biliege sachen prammiren haben wir auch schon auf die C-Control geladen z.B. sowas wie wo ganz viele LED´s aufläuchten und meinen namen schreiben!!!

Matthias
16.08.2004, 14:32
define x byte

define set port[1]
define reset port[2]

#loop
wait not set

second=0
minute=0
hour=0

wait not reset

put second
put minute
put hour

goto loop

Das programm funktioniert. Man startet den Timer dur einen Taster an port 1 und man resettet es durch port 2.

Matthias
16.08.2004, 14:33
Wie schreiben die denn deinen Namen?

der noob
16.08.2004, 14:37
der lässt die ganze zeit nur so ein 4eck und % laufen mehr nicht
wieso???

Matthias
16.08.2004, 14:38
was für ein terminal hast du?

der noob
16.08.2004, 14:38
wie wer schreibt meinem namen ach hasste ICQ details geguckt das stimmt das alles nicht ich heisse DEAN

Matthias
16.08.2004, 14:40
Ich meinte das mit den LEDs und deinem Namen, aber egal...

der noob
16.08.2004, 14:40
Was meinst du denn mit Terminal???
eine ausgabe einheit LCD oder was meinst??

Matthias
16.08.2004, 14:41
Du kannst dieses programm nicht im simulator laufen lassen. dazu musst du dieses, leicht veränderte programm nehmen:

define x byte

define set port[1]
define reset port[2]

#loop
wait set

second=0
minute=0
hour=0

wait reset

print second
print minute
print hour

goto loop

der noob
16.08.2004, 14:41
--------------------------------------------------------------------------------
der lässt die ganze zeit nur so ein 4eck und % laufen mehr nicht
wieso???
Also bei der stopuhr!!

Matthias
16.08.2004, 14:43
Das programm funtzt nicht im simulator. Es funtzt nur mit ner normalen C-Control

Matthias
16.08.2004, 14:44
Der simulator hat immer die genaue zei eingestellt. bei der CC ist dies nicht so, deshalb gibt es probleme im Simulator.

der noob
16.08.2004, 14:45
das kann man trotzdem nicht im simulator laufen lassen :D

Matthias
16.08.2004, 14:46
Hab ich auch bemerkt...

der noob
16.08.2004, 14:47
habe deine antworten zuspät gelesen!!!
ja ok bin um 18uhr mit ICQ online hab jetzt feierabend bis denne!!!

Matthias
16.08.2004, 14:48
Doch, es funtzt!

der noob
16.08.2004, 14:48
wie denn ???

Matthias
16.08.2004, 14:48
Du hast bestimmt vergessen das Programm neu zu Compilieren...

Matthias
16.08.2004, 14:49
dann kommt die aktuelle uhrzeit raus

Matthias
16.08.2004, 14:49
wäre es auf der CC würde stattdessen die gestoppte Zeit in sekunden/minuten/stunden ausgegeben werden.

der noob
16.08.2004, 14:51
jo hasste recht !!!!
aber das icst ja keine stop uhr???
das die die von1 sec 10min läuft oder so wie geht sowas den??

Matthias
16.08.2004, 14:54
das ist eben so, dass die uhrzeit im simulator immer die aktuelle (jetzt 15:53) ist. Wenn man diese zu verstellen versucht (hour=0) dann wird sie automatisch wieder auf die aktuelle Uhrzeit eingestellt. Die CC tut das nicht, deshalb funtzt das Programm im simulator nich.

der noob
16.08.2004, 14:55
aso wenn ich das prog auf einem LCD laufen lassen würde müsste es gehen!!!!!

Matthias
16.08.2004, 14:55
mein programm lässt die Uhr beim Startimpuls ab 0 hochlaufen. wenn der sptoppimpuls gegeben wird, wird einfach nur die Uhrzeit ausgegeben.

Matthias
16.08.2004, 14:56
wenn du noch LCD-Routinen dazumachst schon.

Matthias
16.08.2004, 14:56
Soll ich die drantuhn?

der noob
16.08.2004, 14:59
und wie kann man das machen das er die gestopte zeit eaus giebt

ICH muss jetzt bin um 18 UHR wieder on dann können wir per ICQ labbern OK??

BlueNature
17.08.2004, 01:14
Hallo Matthias!

Das Programm ist aber für ein Terminal nicht sonderlich gut geeignet. Das spuckt binäre Werte aus. Also drei binäre Bytes. Besser wäre es doch wenn man das Ganze etwas anders programmieren würde auf Basis deiner Idee, nur etwas korregiert auch bei der führenden Null:



Define Knopf Port[1]
Define xStd Byte[1]
Define xMin Byte[2]
Define xSek Byte[3]

#Start
Second = 0
Minute = 0
Hour = 0
If Knopf Then GoTo Start

#Start2
If Not Knopf Then GoTo Start2

#Stop
If Knopf Then GoTo Stop
xSek = Second
xMin = Minute
xStd = Hour
Print "Zeit: ";
If xStd > 9 Then Print xStd; ":"; Else Print "0"; xStd; ":";
If xMin > 9 Then Print xMin; ":"; Else Print "0"; xMin; ":";
If xSek > 9 Then Print xSek Else Print "0"; xSek
Print

#Stop2
If Not Knopf Then GoTo Stop2
GoTo Start


Grüsse Wolfgang

BlueNature
17.08.2004, 02:25
Der Taschenrechner

Die C-Control wird einfach nur an das Terminal angeschlossen und ist als Taschenrechner programmiert. Die PC-Tastatur ist hierbei das Eingabegerät und der Monitor das Ausgabegerät. Dazwischen ist die C-Control welche die Rechenarbeit übernimmt.



'Taschenrechner
'--------------

'Die C-Control wird einfach nur an das Terminal angeschlossen
'und ist als Taschenrechner programmiert. Die PC-Tastatur ist
'hierbei das Eingabegerät und der Monitor das Ausgabegerät.
'Dazwischen ist die C-Control welche die Rechenarbeit übernimmt.

Define Wert1 Word
Define Wert2 Word
Define Faktor Word
Define Taste Byte
Define MemNr Byte
Define CMode Byte

Define x0 48
Define x1 49
Define x2 50
Define x3 51
Define x4 52
Define x5 53
Define x6 54
Define x7 55
Define x8 56
Define x9 57

Define xPlus 43
Define xMinus 45
Define xMal 42
Define xGeteilt 47

Define xEnter 13

#Start
Print "Taschenrechner wurde eingeschaltet"

#Neu
Wert1 = 0
Wert2 = 0
Faktor = 1
MemNr = 1

#WarteTaste
'Auf eine Eingabe warten
If Not RxD Then GoTo WarteTaste
Get Taste
If Taste = xPlus Then GoTo CalcPlus
If Taste = xMinus Then GoTo CalcMinus
If Taste = xMal Then GoTo CalcMal
If Taste = xGeteilt Then GoTo CalcGeteilt
If Taste = xEnter Then GoTo CalcEnter
If Taste >= x0 And Taste <= x9 Then GoTo EingZahl
Beep 100, 2, 0
GoTo WarteTaste

#EingZahl
'Zahl eingegeben
If MemNr = 1 Then Wert1 = Wert1 * 10 + Taste
If MemNr = 2 Then Wert2 = Wert2 * 10 + Taste
GoTo WarteTaste

#CalcPlus
'Plus gedrückt
Print " "; Wert1
MemNr = 2
CMode = 1
Print "+ ";
GoTo WarteTaste

#CalcMinus
'Minus gedrückt
Print " "; Wert1
MemNr = 2
CMode = 2
Print "- ";
GoTo WarteTaste

#CalcMal
'Mal gedrückt
Print " "; Wert1
MemNr = 2
CMode = 3
Print "* ";
GoTo WarteTaste

#CalcGeteilt
'Geteilt gedrückt
Print " "; Wert1
MemNr = 2
CMode = 4
Print "/ ";
GoTo WarteTaste

#CalcEnter
'Enter gedrückt (=)
Print Wert2
If CMode = 1 Then Wert1 = Wert1 + Wert2
If CMode = 2 Then Wert1 = Wert1 - Wert2
If CMode = 3 Then Wert1 = Wert1 * Wert2
If CMode = 4 Then Wert1 = Wert1 / Wert2
Print "= "; Wert1
GoTo Neu


Nicht getestet, aber im Groben wenigstens ein einfacher Ansatz zum Ausbauen und Üben. Ich weis das es noch Fehler hat und noch nicht ganz fertig ist, aber du solltest auch noch was zu richten haben. NE gute Note muss man sich verdient haben ;)

Grüsse Wolfgang

Matthias
17.08.2004, 09:05
Bei meinem Terminal wird eben das empfangene in binär, dezimal und als ASCII ausgegeben, deshalb ist das programm so.

BlueNature
17.08.2004, 09:30
Bei meinem Terminal wird eben das empfangene in binär, dezimal und als ASCII ausgegeben, deshalb ist das programm so.
Aber ich gehe eben gerne von den minimalsten Mitteln aus ;)

GrüsseWolfgang

der noob
17.08.2004, 09:48
define x byte
define y byte
define z ad[1]

#loop
IF not z >= 150 then goto loop

#Start
x = timer
goto Stop

#Stop
y = Timer-x
print y
IF z <= 150 then goto Stop2
gosub start


#Stop2
goto loop

das sit im momment mein programm nur soll das steht wenn ich den ad über 1 ziehe und wieder runter ziehe soll er weiter laufen ziehe ich ihn nochmal rüber stopt er so will ich das haben weiss aber nicht wie
danke für die hilfe mit dem AD port!!!

der noob
17.08.2004, 09:49
ICh habe es jetzt ein wenig geändert!!!

define x byte
define y byte
define z ad[1]

#loop
IF not z >=30 then goto loop

#Start
x = timer
goto Stop

#Stop
y = Timer-x
print y
pause = 100
IF z >= 1 then goto Stop2
gosub start


#Stop2
pause = 100
goto loop