Kann man ein alias im laufenden Programm neu vergeben ohne von Bascom geschimpft zu kriegen?
Moin moin nein das geht nicht. Die alias Funktion ist nur für ein bessere Verständlichkeit/Lesbarkeit des Programmes da. Wird das Programm kompeliert, wird dem alias eine Variable zugewiesen.
Nö, das geht natürlich nicht
1 | $regfile = "m168def.dat" |
2 | $crystal = 8000000 |
3 | $framesize = 64 |
4 | $swstack = 64 |
5 | $hwstack = 64 |
6 | |
7 | Config Portd.0 = Output |
8 | Led1 Alias Portd.0 |
9 | |
10 | Do |
11 | Set Led1 |
12 | Ledeins Alias Portd.0 |
13 | Print "was für ein unsinn" |
14 | Waitms 500 |
15 | Led1 Alias Portd.0 |
16 | Reset Ledeins |
17 | Waitms 500 |
18 | Loop |
19 | |
20 | End |
quittiert der Compiler mit
1 | Error : 87 Line : 15 ALIAS already used [LED1 ] , in File : F:\code\bascom\temp\unfug.bas |
Ich kann mir aber auch keinen sinnvollen Anwendungsfall vorstellen.
MTA schrieb: > Ich kann mir aber auch keinen sinnvollen Anwendungsfall vorstellen. Ich schon. :) Ich habe alias A (Porta) in einen komplexen Sachverhalt eingebunden und will das gleiche nun für PortB tun, oder andersrum. Neuvergabe im Wechsel quasi.
Controllus Interruptus schrieb: > Kennt jemand einen alternativen Weg? Klar, aber ich zeig dir mein Programm auch nicht obwohl es nicht so komplex ist.
Eine Led Matrix 20x20 mit schieberegistern. Funktioniert gut, aber nun will ich meinen Text abwechselnd über Porta(untere 8 Ledreihen) und Portc(mittlere 8 Ledr)ausgeben. Die oberen 4 Reihen spielen erstmal noch keine Rolle. Zeile1 in der timer_isr müßte also im Wechsel neu definiert werden. $regfile = "m32def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 30 $framesize = 40 Config Porta = Output Config Portb = Output Config Portc = Output Config Portd = Output Portd = 255 Portc = 255 Porta = 255 Config Timer0 = Timer , Prescale = 64 On Timer0 Timer_isr Enable Timer0 Enable Interrupts Stop Timer0 Config Portd.5 = Input 'Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Config Timer1 = Timer , Prescale = 256 On Timer1 Timergen Timer1 = 3035 Enable Timer1 Enable Interrupts Zeile2 Alias Portc Zeile1 Alias Porta Zeile3 Alias Portd Dout Alias Portb.2 Ss Alias Portb.1 Clock Alias Portb.0 Dim A As Word , B As Word Dim A1 As Word , A2 As Word , A3 As Word Dim Beginn_zeichen As Word , Ende_zeichen As Word , Db_zeiger As Word Dim Bz As Word Dim Ti As Byte , Tl As Byte , Tl2 As Word , Tl3 As Word Dim Ez As Byte Dim Dat(1530) As Byte Dim Ze(8) As Byte Dim Text As String * 255 Dim Einzelzeichen As String * 1 Dim Tx As Byte Dim Xs As Byte Dim Xt As Byte Dim Xd As Byte Dim Xh As Byte Dim Textw As String * 20 Dim Text1 As String * 2 Dim Text2 As String * 2 Dim Text3 As String * 2 Ze(1) = 127 Ze(2) = 191 Ze(3) = 223 Ze(4) = 239 Ze(5) = 247 Ze(6) = 251 Ze(7) = 253 Ze(8) = 254 Xt = 10 Xh = 13 Xs = 30 Xd = 5 Gosub Weekday Textur: Text1 = Str(xh) If Xh < 10 Then Text1 = "0" + Text1 Text2 = Str(xt) If Xt < 10 Then Text2 = "0" + Text2 Text3 = Str(xs) If Xs < 10 Then Text3 = "0" + Text3 Text = " " + Text1 + ":" + Text2 + ":" + Text3 + " " + Textw 'max. 255 Zeichen Tl = Len(text) B = 1 For A = 1 To Tl Tl2 = Tl * 6 Einzelzeichen = Mid(text , A , 1) Ez = Asc(einzelzeichen) Bz = Ez - 32 Beginn_zeichen = Bz * 6 Ende_zeichen = Beginn_zeichen + 5 For Db_zeiger = Beginn_zeichen To Ende_zeichen Dat(b) = Lookup(db_zeiger , Zeichensatz) 'Dat(b) = 255 - Dat(b) Incr B Next Db_zeiger Next A A2 = 1 Tl3 = Tl2 - 20 Start Timer0 Start Timer1 Do A3 = A2 + 50 Waitms 40 Incr A2 If A2 = Tl3 Then A2 = 1 If Xs = 23 Then zeile1Alias Zeile1 Goto Textur End If If Xs = 47 Then zeile1Alias Zeile2 Goto Textur End If If Xs = 60 Then 'calculate loading time Xt = Xt + 1 Xs = 0 End If If Xt = 60 Then Xh = Xh + 1 Xt = 0 If Xh = 24 Then Xh = 0 Xd = Xd + 1 Gosub Weekday End If If Xd = 7 Then Xd = 0 End If Loop End Weekday: If Xd = 0 Then Textw = " Monday " If Xd = 1 Then Textw = " Tuesday " If Xd = 2 Then Textw = " Wednesday " If Xd = 3 Then Textw = " Thursday " If Xd = 4 Then Textw = " Friday " If Xd = 5 Then Textw = " Saturday " If Xd = 6 Then Textw = " Sunday " Return Timergen: Xs = Xs + 1 Timer1 = 3035 Return Timer_isr: If Ti = 9 Then Ti = 1 Select Case Ti Case 1: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).0 Clock = 0 Next A1 Ss = 1 zeile1= Ze(1) Case 2: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).1 Clock = 0 Next A1 Ss = 1 zeile1= Ze(2) Case 3: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).2 Clock = 0 Next A1 Ss = 1 zeile1= Ze(3) Case 4: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).3 Clock = 0 Next A1 Ss = 1 zeile1= Ze(4) Case 5: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).4 Clock = 0 Next A1 Ss = 1 zeile1= Ze(5) Case 6: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).5 Clock = 0 Next A1 Ss = 1 zeile1= Ze(6) Case 7: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).6 Clock = 0 Next A1 Ss = 1 zeile1= Ze(7) Case 8: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).7 Clock = 0 Next A1 Ss = 1 zeile1= Ze(8) '( Case 9: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).0 Clock = 0 Next A1 Ss = 1 Zeile2 = Ze(1) Case 10: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).1 Clock = 0 Next A1 Ss = 1 Zeile2 = Ze(2) Case 11: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).2 Clock = 0 Next A1 Ss = 1 Zeile2 = Ze(3) Case 12: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).3 Clock = 0 Next A1 Ss = 1 Zeile2 = Ze(4) Case 13: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).4 Clock = 0 Next A1 Ss = 1 Zeile2 = Ze(5) Case 14: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).5 Clock = 0 Next A1 Ss = 1 Zeile2 = Ze(6) Case 15: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).6 Clock = 0 Next A1 Ss = 1 Zeile2 = Ze(7) Case 16: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).7 Clock = 0 Next A1 Ss = 1 Zeile2 = Ze(8) Case 17: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).0 Clock = 0 Next A1 Ss = 1 Zeile3 = Ze(1) Case 18: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).1 Clock = 0 Next A1 Ss = 1 Zeile3 = Ze(2) Case 19: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).2 Clock = 0 Next A1 Ss = 1 Zeile3 = Ze(3) Case 20: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).3 Clock = 0 Next A1 Ss = 1 Zeile3 = Ze(4) Case 21: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).4 Clock = 0 Next A1 Ss = 1 Zeile3 = Ze(5) Case 22: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).5 Clock = 0 Next A1 Ss = 1 Zeile3 = Ze(6) Case 23: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).6 Clock = 0 Next A1 Ss = 1 Zeile3 = Ze(7) Case 24: Ss = 0 For A1 = A2 To A3 Clock = 1 Dout = Dat(a1).7 Clock = 0 Next A1 Ss = 1 Zeile3 = Ze(8) ') End Select Incr Ti Return Zeichensatz: Data 0 , 0 , 0 , 0 , 0 , 0 'Leerzeichen Data 0 , 0 , 6 , 95 , 6 , 0 '! Data 0 , 7 , 3 , 0 , 7 , 3 '"" Data 0 , 36 , 126 , 36 , 126 , 36 '# Data 0 , 36 , 43 , 106 , 18 , 0 '$ Data 0 , 6 , 9 , 9 , 6 , 0 '% Data 0 , 54 , 73 , 86 , 32 , 80 '& Data 0 , 0 , 7 , 3 , 0 , 0 '' Data 0 , 0 , 62 , 65 , 0 , 0 ' Data 0 , 0 , 65 , 62 , 0 , 0 ' Data 0 , 8 , 62 , 28 , 62 , 8 '* Data 0 , 8 , 8 , 62 , 8 , 8 '+ Data 0 , 0 , 224 , 96 , 0 , 0 ', Data 0 , 8 , 8 , 8 , 8 , 8 '- Data 0 , 0 , 96 , 96 , 0 , 0 '. Data 0 , 32 , 16 , 8 , 4 , 2 '/ Data 0 , 62 , 81 , 73 , 69 , 62 '0 Data 0 , 0 , 66 , 127 , 64 , 0 '1 Data 0 , 98 , 81 , 73 , 73 , 70 '2 Data 0 , 34 , 73 , 73 , 73 , 54 '3 Data 0 , 24 , 20 , 18 , 127 , 16 '4 Data 0 , 47 , 73 , 73 , 73 , 49 '5 Data 0 , 60 , 74 , 73 , 73 , 48 '6 Data 0 , 1 , 113 , 9 , 5 , 3 '7 Data 0 , 54 , 73 , 73 , 73 , 54 '8 Data 0 , 6 , 73 , 73 , 41 , 30 '9 Data 0 , 0 , 108 , 108 , 0 , 0 ': Data 0 , 0 , 236 , 108 , 0 , 0 '; Data 0 , 8 , 20 , 34 , 65 , 0 '< Data 0 , 36 , 36 , 36 , 36 , 36 '= Data 0 , 0 , 65 , 34 , 20 , 8 '> Data 0 , 2 , 1 , 89 , 9 , 6 '? Data 0 , 62 , 65 , 93 , 85 , 30 '@ Data 0 , 126 , 9 , 9 , 9 , 126 'A Data 0 , 127 , 73 , 73 , 73 , 54 'B Data 0 , 62 , 65 , 65 , 65 , 34 'C Data 0 , 127 , 65 , 65 , 65 , 62 'D Data 0 , 127 , 73 , 73 , 73 , 65 'E Data 0 , 127 , 9 , 9 , 9 , 1 'F Data 0 , 62 , 65 , 73 , 73 , 122 'G Data 0 , 127 , 8 , 8 , 8 , 127 'H Data 0 , 0 , 65 , 127 , 65 , 0 'I Data 0 , 63 , 64 , 64 , 64 , 48 'J Data 0 , 127 , 8 , 20 , 34 , 65 'K Data 0 , 127 , 64 , 64 , 64 , 64 'L Data 0 , 127 , 2 , 4 , 2 , 127 'M Data 0 , 127 , 2 , 4 , 8 , 127 'N Data 0 , 62 , 65 , 65 , 65 , 62 'O Data 0 , 127 , 9 , 9 , 9 , 6 'P Data 0 , 62 , 65 , 81 , 33 , 94 'Q Data 0 , 127 , 9 , 9 , 25 , 102 'R Data 0 , 38 , 73 , 73 , 73 , 50 'S Data 0 , 1 , 1 , 127 , 1 , 1 'T Data 0 , 63 , 64 , 64 , 64 , 63 'U Data 0 , 31 , 32 , 64 , 32 , 31 'V Data 0 , 63 , 64 , 60 , 64 , 63 'W Data 0 , 99 , 20 , 8 , 20 , 99 'X Data 0 , 7 , 8 , 112 , 8 , 7 'Y Data 0 , 97 , 81 , 73 , 69 , 67 'Z Data 0 , 0 , 127 , 65 , 65 , 0 '[ Data 0 , 2 , 4 , 8 , 16 , 32 '\ Data 0 , 0 , 65 , 65 , 127 , 0 '] Data 0 , 4 , 2 , 1 , 2 , 4 '^ Data 128 , 128 , 128 , 128 , 128 , 128 ' Data 0 , 0 , 3 , 7 , 0 , 0 '` Data 0 , 32 , 84 , 84 , 84 , 120 'a Data 0 , 127 , 68 , 68 , 68 , 56 'b Data 0 , 56 , 68 , 68 , 68 , 40 'c Data 0 , 56 , 68 , 68 , 68 , 127 'd Data 0 , 56 , 84 , 84 , 84 , 8 'e Data 0 , 8 , 126 , 9 , 9 , 0 'f Data 0 , 24 , 164 , 164 , 164 , 124 'g Data 0 , 127 , 4 , 4 , 120 , 0 'h Data 0 , 0 , 0 , 125 , 64 , 0 'i Data 0 , 64 , 128 , 132 , 125 , 0 'j Data 0 , 127 , 16 , 40 , 68 , 0 'k Data 0 , 0 , 0 , 127 , 64 , 0 'l Data 0 , 124 , 4 , 24 , 4 , 120 'm Data 0 , 124 , 4 , 4 , 120 , 0 'n Data 0 , 56 , 68 , 68 , 68 , 56 'o Data 0 , 252 , 68 , 68 , 68 , 56 'p Data 0 , 56 , 68 , 68 , 68 , 252 'q Data 0 , 68 , 120 , 68 , 4 , 8 'r Data 0 , 8 , 84 , 84 , 84 , 32 's Data 0 , 4 , 62 , 68 , 36 , 0 't Data 0 , 60 , 64 , 32 , 124 , 0 'u Data 0 , 28 , 32 , 64 , 32 , 28 'v Data 0 , 60 , 96 , 48 , 96 , 60 'w Data 0 , 108 , 16 , 16 , 108 , 0 'x Data 0 , 156 , 160 , 96 , 60 , 0 'y Data 0 , 100 , 84 , 84 , 76 , 0 'z Data 0 , 8 , 62 , 65 , 65 , 0 '{ Data 0 , 0 , 0 , 127 , 0 , 0 '| Data 0 , 0 , 0 , 0 , 0 , 0 '} Data 0 , 2 , 1 , 2 , 1 , 0 '~ Data 0 , 0 , 0 , 0 , 0 , 0
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.