Moin Moin in die Runde, ich habe eine Anfängerfrage zu Bascom AVR (Controller: ATmega32), die mir die bisherige Foren- und Internet-Suche leider nicht beantworten konnte. Ich denke, dass es für das Problem eine einfache Lösung gibt, aber ich stehe gerade etwas auf der Leitung. Nun zum Problem(chen): Ich möchte verschiede zuvor definierte Alias mit einer Variable ansprechen. ---------- Beispiel: Dim N As Byte LED1 alias PORTB.0 LED2 alias PORTB.1 LED3 alias PORTB.2 N = 1 toggle LEDN ---------- Ich hoffe mein Problem wird dadurch einiger Maßen deutlich. N könnte später zum Beispiel in einer Schleife hochgezählt und nacheinander alle LEDs ansprechen. Leider funktioniert der Ausdruck "LEDN" nicht. Ich würde mich sehr über eure Hilfe bei diesem kleinen Problem freuen. Vielen Dank im Voraus! Schönen Rest-Weihnachtsfeiertag und guten Rutsch! Viele Grüße Sören, DG5SM
Muss es unbedingt über Alias sein ? So könnte es gehen, kann es im Moment aber nicht Testen
1 | |
2 | |
3 | |
4 | Dim N As Byte |
5 | |
6 | Led Alias Portb |
7 | |
8 | N = 1 |
9 | Toggle Led.N |
Moin Moin, danke für die schnelle Antwort. Dein Code funktioniert einwandfrei. Leider liegen bei mir nicht alles LEDs auf einem PORT. Das ist auch der Grund, warum ich "alias" verwende. Ich habe 12 LEDs auf 2 PORTs ("PORTB" und "PORTC") aufgeteilt, möchte aber alles nacheinander mit einer hochlaufenden Variable ansprechen könnten. Sonst würde ich mir die Sache mit dem "alias" natürlich schenken und direkt die PINs ansprechen. Viele Grüße Sören, DG5SM
1 | Dim N As Byte |
2 | Dim H As Byte |
3 | |
4 | Led_low Alias Portb |
5 | Led_high Alias Portc |
6 | |
7 | |
8 | Main: |
9 | If N < 8 Then |
10 | Toggle Led_low.n |
11 | Else |
12 | H = N - 8 |
13 | Toggle Led_high.h |
14 | |
15 | End If |
16 | |
17 | |
18 | Incr N |
19 | If N > 11 Then N = 0 |
20 | Wait 1 |
21 | |
22 | Goto Main |
Oder man löst es über SELECT - CASE sieht ungefähr so aus (aber sicher nicht 100% Richtig, da ich zuviele Dialekte spreche[schreibe]) select N case:1 Toggle Led1 exit case:2 Toggle Led2 exit end_case genaue Schreibweise findet man sicher schnell in der Bascomhilfe. Hab's aber nicht auf diesem Rechner. Gruss Wambly
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.