Bascom: Alias mit Variable ansprechen

Gast #1090407
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
Gast #1090462
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
Gast #1090506
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
#1090537
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren