- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 5 von 5

Thema: Alias funktioniert nicht?!

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627

    Alias funktioniert nicht?!

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    ich möchte in meinem Programm Alias benutzen. Ohne Alias funktioniert das Programm(Pin´s direkt angegeben)!

    Hab ich beim Alias einen Schreibfehler oder so etwas?

    Bei Case "0" werden diese beiden Zeilen rot markiert!
    >Segment_a = 1
    >Segment_b = 1

    Tobias

    Code:
    'Konfiguration µC:
    
    $regfile = "m8def.dat"                                      'AT-Mega8
    $crystal = 8000000                                          '18432000
    
    $hwstack = 32                                               ' default use 32 for the hardware stack
    $swstack = 8                                                ' default use 10 for the SW stack
    $baud = 38400                                               '38400 wenn langsamer flimmert die Anzeige!!!!
    
    '_______________________________________________________________________________
    '0=Eingang / 1=Ausgang
    Ddrb = &B11000000                                           'PortB = PB7+6=Ausgang 7Seg)Rest als Eingänge, damit Programmable in System
    Ddrc = &B000000                                             'PortC = Eingang
    Ddrd = &B11111110                                           'PortD = PD0=RS232 Input, PD1=RS232 output,PD2-PD7=Ausgang 7Seg)
    
    '_______________________________________________________________________________
    Dim Anzeige_akt As Word                                     'Aktuelle Zeitmessung
    Dim Anzeige_str As String * 5                               'Zeit als String
    Dim Anzeige_str_len As Byte                                 'String-Länge
    Dim Anzeige_ziffer As String * 1                            'Aktuelle Ziffer
    Dim Anzeige_pos As Byte                                     'Aktuelle Ziffer im String
    Dim I As Byte                                               'Allgem. Laufzahl
    
    Dim A As Integer                                            'für RS232
    Dim RS232 As Integer                                        'für RS232
    
    
    '_______________________________________________________________________________
    'Alias vergeben:
    Segment_a = Alias Portd.2                                   'rote Ader
    Segment_b = Alias Portd.3
    Segment_c = Alias Portd.4
    Segment_d = Alias Portb.6
    Segment_e = Alias Portb.7
    Segment_f = Alias Portd.5
    Segment_g = Alias Portd.6
    Segment_dp = Alias Portd.7
    
    '_______________________________________________________________________________
    
    
    RS232 = 0
    
    
    Do
     Anzeige_str = Str(anzeige_akt)                             ' Wert in String umwandeln
          Anzeige_str_len = Len(anzeige_str)                    ' Stringlänge messen
    
          Anzeige_pos = Anzeige_str_len - I
          Anzeige_pos = Anzeige_pos + 1
    
          Anzeige_ziffer = Mid(anzeige_str , Anzeige_pos , 1)
    
          Portc = 0                                             'Ghosting vermeiden (damit nich auf allen Anzeigen die selbe Zahl steht!!!)
    
          'Auswahl der Ziffer und festlegung der einzelnen segmente
          Select Case Anzeige_ziffer
    
               Case "0" :                                       'Ziffer NULL
               Segment_a = 1
               Segment_b = 1
               Segment_c = 1
               Segment_d = 1
               Segment_e = 1
               Segment_f = 0
               Segment_g = 0
    
               Case "1" :                                       'Ziffer EINS
               Segment_a = 0
               Segment_b = 1
               Segment_c = 1
               Segment_d = 0
               Segment_e = 0
               Segment_f = 0
               Segment_g = 0
    
    
               Case "2" :                                       'Ziffer ZWEI
               Segment_a = 1
               Segment_b = 1
               Segment_c = 0
               Segment_d = 1
               Segment_e = 1
               Segment_f = 0
               Segment_g = 1
    
    
               Case "3" :                                       'Ziffer DREI
               Segment_a = 1
               Segment_b = 1
               Segment_c = 1
               Segment_d = 1
               Segment_e = 0
               Segment_f = 0
               Segment_g = 1
    
    
               Case "4" :                                       'Ziffer VIER
               Segment_a = 0
               Segment_b = 1
               Segment_c = 1
               Segment_d = 0
               Segment_e = 0
               Segment_f = 1
               Segment_g = 1
    
    
               Case "5" :                                       'Ziffer FÜNF
               Segment_a = 1
               Segment_b = 0
               Segment_c = 1
               Segment_d = 1
               Segment_e = 0
               Segment_f = 1
               Segment_g = 1
    
    
               Case "6" :                                       'Ziffer  SECHS
               Segment_a = 1
               Segment_b = 0
               Segment_c = 1
               Segment_d = 1
               Segment_e = 1
               Segment_f = 1
               Segment_g = 1
    
    
               Case "7" : 'Ziffer SIEBEN
               Segment_a = 1
               Segment_b = 1
               Segment_c = 1
               Segment_d = 0
               Segment_e = 0
               Segment_f = 0
               Segment_g = 0
    
    
               Case "8" :                                       'Ziffer NEUN ACHT
               Segment_a = 1
               Segment_b = 1
               Segment_c = 1
               Segment_d = 1
               Segment_e = 1
               Segment_f = 1
               Segment_g = 1
    
    
               Case "9" :                                       'Ziffer NEUN
               Segment_a = 1
               Segment_b = 1
               Segment_c = 1
               Segment_d = 1
               Segment_e = 0
               Segment_f = 1
               Segment_g = 1
    
    
               Case Else :
               Segment_a = 0
               Segment_b = 0
               Segment_c = 0
               Segment_d = 0
               Segment_e = 0
               Segment_f = 0
               Segment_g = 1
    
    
          End Select
    
         'Segment wählen
          If I = 1 Then Portc.1 = 1                             'EINER
          'If I = 2 Then Portc.2 = 1                            'ZEHNER
          If I = 2 Then
          Portc.2 = 1                                           'ZEHNER
          Portd.7 = 1                                           'EINE Kommastelle (Punkt einschalten)
           End If
          If I = 3 Then Portc.3 = 1                             'HUNDERTER
          If I = 4 Then Portc.4 = 1                             'TAUSENDER
    
          I = I + 1                                             'Nächste Ziffer
          If I >= 5 Then I = 1                                  'max Anzeigen angeben! damit Anzeige möglichst hell ist(bei 5Anzeigen muss bei der 6. wieder bei 1 Angefangen werden)
    
    
    'ENDE ANZEIGE
    
    
    If Usr.rxc = 1 Then                                         'Wenn Byte empfangen...
    A = Udr                                                     'Byte aus UART auslesen
    Input RS232                                                 'Noecho                                              'über RS232 empfangen
    'Print "out " ; RS232  'ÜBERLASTET den µC!!!
    End If
    
    
    'Wert von serieller Schnittstelle auf Anzeige Übernehmen
    Anzeige_akt = RS232
    
    
    Loop
    
    
    
    '-------------------------------------------------------------------------------
    'Anschlussbelegung am AT-MEGA8
    '-------------------------------------------------------------------------------
    
    'Segment A = PD2 (rote Ader)
    'Segment B = PD3
    'Segment C = PD4
    'Segment D = PB6
    'Segment E = PB7
    'Segment F = PD5
    'Segment G = PD6
    'Segment DP = PD7
    
    'Zahl 1 = PC1 ganz rechts EINER (rote Ader)
    'Zahl 2 = PC2 2.Stelle von Rechts ZEHNER
    'Zahl 3 = PC3 3.Stelle von Rechts Hunderter
    'Zahl 4 = PC4 4.Stelle von Rechts Tausender
    
    '  a
    '  -
    'f|g|b
    '  -
    'e| |c
    '  -
    '  d
    ...

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    42
    Beiträge
    318
    Hi Tobias,

    ich würde mal sagen, das das = Zeichen da weg muss. also so:

    Segment_a alias Portd.2

    dann gehts auch mit den Aliassen

    mfg Kay

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    JuHuu

    Danke! Das war´s - hab wohl den Wald vor lauter Bäumen nicht gesehen

    Danke - Tobias
    ...

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Und die Doppelpunkte hinter den Case brauchst du auch nicht

    Ist ja echt ein gemeiner Fehler mit den = Zeichen.
    Ich hab' eben 10 Minuten rumprobiert und habe auch den Wald vor lauter Bäumen auch nicht gesehen... irgendwann habe ich die Alias Zeile einfach neu geschrieben und erst da ist mir das zusätzliche "=" aufgefallen.

    Aber Kay war sowieso schneller

    Gruß
    Christopher

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    42
    Beiträge
    318
    Juhu, ich war schneller

    mfg Kay

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress