Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Jacke, > > > Ist mein Problem so einfach oder so dumm, dass keiner antwortet? > > bitte ein Tip! > > Du brauchst nicht glauben, daß man immer innerhalb von 24h eine Antwort bekommt. > Das könnte man Verlangen, wenn mein Forum ein kostenpflichtiger Dienst wäre. > Jedoch helfen die Leute hier alle in Ihrer Freizeit aus freien Stücken. > > Darum sind solche "schnellen" Erinnerungspostings extrem unhöflich. > > Nun aber zu Deinem Problem: > > > > Mein Programm funzt soweit, dass es den Eingang ausließt, jedoch stoppt es nicht > > > den Programmablauf, sondern spilet sofort die Melodien - ich kann sie nicht mehr hören. > > Dann entferne die Melodien und ersetze diese durch einen einfach Piep. > > Aber nun Schrittweise zu Deinem Programm: > > > > <code> > > > // Initial LCD > > > lcdext.init(); > > > wait lcd.ready(); > > > lcdext.clear(); > > > lcdext.home(); > > > lcdext.goto(1,0); </code> > > Was ist das ???? > Warum prüfts Du hier auf <code>lcd.ready()</code> ?? > Das Modul lcd.c2 betrifft nur die vergossenen Units mit Mini-LCD, > die es noch bis Frühjahr 2004 gab. > Und Deine Initialisierung des externen LCDs ist auch etwas "umständlich" > Ein Aufruf von <code>lcdext.init()</code> reicht hier völlig. > Denn bei einem Init des externen Displays wird: > - dieses gelöscht > - der Cursor auf die Anfangspositin gesetzt (Zeile 1, Position 0) > > <code> > > > if ports.get(8) >= 0 > > > sleep zeit*1000; > > > else > > > { > > > > > > // CALLING > > > melody.good_bad_ugly(); > > > melody.pink_panther(); > > > > > > } </code> > > Was ist das für ein Vergleich ? > Warum prüft Du hier auf größer-gleich 0 ? > die Funktion ports.get() gibt entweder 0 (False) oder -1 (minus 1) (True) zurück. > Wenn also Port P1H.0 einen Highpegel hat, werden die Melodien abgespielt > Aber schöner würd es so aussehen: > <code> > if ports.get(8) > {// bei High-Pegel > melody.good_bad_ugly(); > melody.pink_panther(); > } > else // bei Low-Pegel > sleep x; > </code> > > Ach ja, und noch ein Hinweis zu sleep: > Es sind nur Werte von 0 bis 65535 zulässig. (-32768 bis -1 werden als 32768 bis 65535 interpretiert) > Sobald Deine Variable "zeit" einen Wert größer 65 hat, stimmt die Wartezeit nichtmehr. > > > > Wird der thread in einem neuen Modul definiert oder im selben? > > > > > > if ports.get(8) >= 0 > > > sleep zeit*1000; > > > else > > > run = beepen > > > > > > da gibt es bei beepen immer eine Fehlermeldung, ebal ob der thread beepen im selben Modul > > > oder in einen eigenen untergebracht ist. > > Das ist ein typischer Syntax error, der nur auftauchen kann, wenn man das Handbuch > vorher nicht liest. > Der Syntax zum starten von Threads lautet: > <code> run <Threadname>;</code> > Befindet sich der Thread in einem anderem Modul: > <code> run <Modulname>.<Threadname>;</code> > > > > Wenn ich also Port 8 mittels Sapnnung auf 0 setze bekomme ich <b> sofort </b>diese furchtbare Melodie. > > > Gedacht ist das ganze um über Port 8 das Programm zu stoppen, über Port 9 Pause - das aber erst > > > wenn ichs kann. > > Bist Du sicher, daß Du den richtigen Port gewählt hast ?? > Port 8 ist P1H.0 . > > > MfG André H.