Hallo Forum! Ich suche eine Funktion die es mir (in Bascom) ermöglicht Ports von PortC und PortD eines Megas32 in einer Schleife anzusprechen (1/0 schalten). Ich hab wirklich überall gesucht aber nichts gefunden! Würde ich nur einen Port benutzten ist das einfach: z.B. i=0 Do i = i+1 PortC.i = 1 loop until i<7 kann ich die Ports irgendwie bennenen oder in ein Art Array einordnen?? Etwa so? (ist Schwachsinn!) : A.1=PortC.1 A.2=PortD.5 Wäre echt genial wenn es sowas geben würde!! Sonst hab ich ein Problem und kann nur 8 stat 10 LEDs steuern ! (SOll sowas werden wie die LED-Schriftzug Uhr von Elektor aber ohne teure LED-Treiber :) ) Viele Grüße Merlin
So direkt ist mir auch nichts bekannt aber probiers doch mal so: Dim Leds (10) as bit i=0 Do i = i+1 Leds(i) = 1 gosub Set_Port loop until i<10 Set_Port: portc.1=leds(1) portd.5=leds(2) ...usw. return
>SOll sowas werden wie die LED-Schriftzug Uhr von Elektor Die Uhr kenne ich nicht. >Ich suche eine Funktion die es mir (in Bascom) ermöglicht Ports von >PortC und PortD eines Megas32 in einer Schleife anzusprechen (1/0 >schalten). Sehe ich es richtig, dass du nur ein Bit schieben willst? Deine Funktion würde die LEDs der Reihe nach anschalten (und nicht wieder aus). Sowas geht ganz einfach, indem man ein Byte (bzw. in deinem Fall 2) entweder mehrfach/in einer Schleife je nach Richtung mit 2 multipliziert oder durch 2 dividiert. In dem Byte muss dann entweder 1 oder 128 zu Beginn der Schleife stehen. Das ganze Byte wird dann am Port ausgeben.
Danke erstmal für die Antworten! Die Idee ist eigentlich ganz gut nur leider sehr langsam... Ich will eigentlich bestimmte Muster (zb. 01011101 011 ) an die Ports legen nur das ich eben leider nich nur einen Port benutze sondern portc und ein paar Ausgänge von portD. Das bit schieben von mir war nur ein Beispiel für mein Problem... Sowas würde mein Problem lösen: funktioniert nur nicht.. Schwachsinn: An.1 alias Portc.1 An.2 alias Portc.3 An.3 alias PortD.1 do i = i+1 An.i=1 loop until i<3 (nur das nochwas dazu kommt was entscheidet ob zb. An.1 1 sein soll um Muster zu erhalten) Anwendung ist eine LED-Reihe die sich dreht und durch die Trägheit des Auges Schriftzüge erzeugt. Viele Grüße Merlin
man kann ports auch im ganzen einlesen/ansprechen, es muss nicht immer bitweise sein. und ehe du unverstanden mit overlay & co experimentierst, solltest du dir mal die moeglichkeiten anschaun, lesend auf programmspeicher zuzugreifen (peek, restore, data z.b.). damit kannst du sehr effektiv vordefinierte bitmuster an ports ausgeben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.