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







					
					
					
						
Zitieren

Lesezeichen