Forum: Mikrocontroller und Digitale Elektronik Bascom: Alias mit Variable ansprechen


von Sören, DG5SM (Gast)


Lesenswert?

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

von Ich_auch_Bascom_Nutzer (Gast)


Lesenswert?

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

von Sören, DG5SM (Gast)


Lesenswert?

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

von Ich_auch_Bascom_Nutzer (Gast)


Lesenswert?

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

von T. A. (wambly)


Lesenswert?

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
Noch kein Account? Hier anmelden.