Hallo Kampi,danke für Deine Antwort.Bei mir im Zimmer sind 28Grad Wärme, da muß ich morgen weitermachen. Ich melde mich dann.MfG
Werbung
Hallo Kampi,danke für Deine Antwort.Bei mir im Zimmer sind 28Grad Wärme, da muß ich morgen weitermachen. Ich melde mich dann.MfG
Auch das stimmt nicht ganz - denn dann würde A ja die Werte 2,4,6,8 und 10 annehmen. Und wenn diese Werte auf den PORTB ausgegeben werden, entsteht zwar ein interessantes Muster, aber kein "durchlaufendes" Bit.Wenn du nur PortB.0-4 anschalten willst hat du nur 5 Bit also musst du 5x zählen aber nicht mit +1 sondern mit +2.
Wenn ich Dich richtig verstanden habe, HM, möchtest Du so ´ne Art Lauflicht realisieren. Also die folgenden Bytes ausgeben:
00000001
00000010
00000100
00001000
00010000
Richtig? Dann mach´ doch mal den Windows-Rechner auf und wandle diese Binärzahlen in Dezimalzahlen um. Herauskommen wird 1,2,4,8 und 16. Heißt also im Klartext, dass Du mit A=1 anfängst, dann alle 200 ms den Befehl A=A*2 machst, und A wieder auf 1 setzt, nachdem es 16 gewesen ist. In Code also etwa so:
Und das müsste auch bei > 28 Grad funktionierenCode:... ... Dim A as byte A=1 Do PORTB = A Waitms200 If A=16 then A=1 else A=A*2 Loop![]()
Hallo Sauerbruch,vielen Dank für Deine Antwort Du kannst wohl Gedanken lesen, mit "If Then" habe ich auch schon rumexperimentiert. Das muß ich alles morgen machen, jetzt lieg ich im Bett.Mit den 28Grad habe ich auch an meinen Computer gedacht, der wird schon unter normalen Umständen heiß.Vielen Dank und bis morgen. MfG
Übrigens: Für Lauflicht-Experimente sind die Befehle "Shift" und "Rotate" auch sehr interessant! Näheres findest Du in der Bascom-Hilfe!
Hallo Kampi u. Sauerbruch,
wieder vielen Dank für eure Antworten.
Die Beispiele sind wirklich sehr gut erklärt, sie funktionieren und das hilft mir schon weiter.
Mit "Shift u. Rotate" habe ich auch schon experimentiert, nur weiß ich noch nicht, wie ich das von "PortB.0 bis PortB.4" einschränke.
Vielen Dank für die Hilfe.MfG
HTML-Code:$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 32 $framesize = 60 Ddrb = &B1111_11111 Portb = &B0000_0000 Dim A As Byte A = 1 Do Waitms 200 Portb = A Rotate A , Left , 1 Loop End
Ungetestet:
Rotate A , Left , 1
If A.5=1 Then A=1
Loop
![]()
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo radbruch,
vielen Dank, das funktioniert und leuchtet ein.
Dank euch habe ich jetzt unterschiedliche und richtige Erklärungen/Beispiele und die Möglichkeit verschiedene Varianten auszutesten und evtl. zu
erweitern.![]()
Vielen Dank.![]()
Ach ja, ich hätte bald etwas wichtiges vergessen.
Gibt es irgendwo eine ausführliche Beschreibung des Bascom-Simulators auf deutsch?
Ich habe gemerkt das der Simulator sehr hilfreich ist.
MfG
Lesezeichen