mikrocontroller.net

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


Autor: Sören, DG5SM (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ich_auch_Bascom_Nutzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss es unbedingt über Alias sein ?
So könnte es gehen, kann es im Moment aber nicht Testen


 


Dim N As Byte

Led Alias Portb

N = 1
Toggle Led.N

Autor: Sören, DG5SM (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ich_auch_Bascom_Nutzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dim N As Byte
Dim H As Byte

Led_low Alias Portb
Led_high Alias Portc


Main:
  If N < 8 Then
      Toggle Led_low.n
   Else
      H = N - 8
      Toggle Led_high.h

  End If


Incr N
If N > 11 Then N = 0
Wait 1

Goto Main

Autor: T. A. (wambly)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.