Lampe.i = 1 kann nicht funktionieren.
eventuell so
Lampe.(i)=1
Lampe.i wäre eine undefinierte Variable
Du musst den compiler schon sagen , dass "i" der Zähler ist.
MFG
Bertl
Hallo!
Ich versuche jetzt schon seit Stunden ein Problem zu lösen.
Ich möchte bei einem Mega16 auf 22 Ausgänge eine PWM legen. Und zusätzlich bei den 22 Ausgängen ein Lauflicht laufenlassen.
Ist Grundsätzlich kein Problem. Die Lampen (1-22) sind allerdings kreuz und quer mit den Ports verbunden (Layout).
Jetzt dachte ich mir Folgendes:
Aliasse anlegen in der Form
Um diese dann per FOR durchlaufen zu lassen.Code:Lampe.1 alias Portb.1 Lampe.2 alias Portc.1 ... Lampe.22 alias Portb.0
Leider gibt Bascom "Invalid Datatype" aus. Ich habe es auch schon mit Lampe(1) und Lampe(i) versucht. Geht leider auch nicht. Wenn ich dann noch Lampe(22) als array deklariere gibt Bascom zwar keinen Fehler mehr aus aber das "Lampe(1)" ist nicht mehr mit den Ports verbunden obwohl der Alias noch drinsteht.Code:For i = 1 to 22 Lampe.i = 1 next
Wären die nicht kreuz und quer mit den Ports verbunden könnte ich in der Schleife Portb.i schreiben. Das geht vom syntax her. Geht aber leider in meinem Fall nicht.
Hat sowas schon jemand gemacht?
Die Ports alle einzelnd zu schalten geht zwar. Wäre aber unschön.
Danke
Gruß
Matze
Lampe.i = 1 kann nicht funktionieren.
eventuell so
Lampe.(i)=1
Lampe.i wäre eine undefinierte Variable
Du musst den compiler schon sagen , dass "i" der Zähler ist.
MFG
Bertl
Was meinst du mit 22 PWM Ausgängen?
Kein AVR hat 22 PWM`s.
MFG
Bertl
Hallo Bertl100,
Lampe.(i) = 1 geht leider auch nicht.
PWM wird in dem Fall per Software generiert.
Auch so geht es nicht:
GrußCode:Lampe(1) Alias Portb.0 Lampe(2) Alias Portc.0 ... Lampe(22) Alias Portb.1 ... For i = 1 to 22 Lampe(i) = 1 next
Matze
Probiers mal so
Code:Dim Lampe(22) As Byte Lampe(1) Alias Portb.1 Lampe(2) Alias Portc.1 For i = 1 to 22 Lampe(i) = 1 Next
Poste mal den ganzen code
Hatte ich ganz am Anfang so Probiert.
Sobald ich das "Dim Lampe(22) as byte" drin habe:
Geht fehlerlos durch den Check aber er "verliert" die Alias Anbindung an den Port. Sprich an den Ports kommt nix mehr an.
Nehm ich das "Dim Lampe(22) as byte" wieder raus kommt wieder die Fahlermeldung bei "Lampe(i) = 1"...
Keine Ahnung wie das geht... Ich nehm jetzt die Aliasse alle raus und schreib mir eine Funktion die das dann per If Then auswertet.
Sonst fällt mir nichts ein.
Gruß
Matze
Dann wäre eine case Anweisung besser.
Mir der case kannst du sicher mit den Aliassen arbeiten.
eine Schleife darüber und es geht sicher
MFG
Bertl
Stimmt...
Case ist besser.
Allerdings kann ich mir die alliasses dann sparen.
Dann kann ich auch gleich die Ports angeben im Case.
Danke erstmal Bertl100!
Lesezeichen