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.