Bascom: Alias mit Variable ansprechen

Gast #1090407
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
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
Gast
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
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.