hallo roberto!

ich habe heute eine neue spielerei entwickelt für unser drehlicht

probier mal folgenden code aus... portb.6 und 7 (die brauche ich für mein neues drehlicht mit 2 farben...) kanst du löschen und wahrscheinlich die timer anpassen... dann sollte es funktionieren...

den vorschlag von robert hab ich noch nicht eingebaut und die zahlen fehlen immer noch... das werde ich später dann noch machen...

config portd.2 brauche ich jetzt auch für den interrupt da ich nun auch einen hall sensor verwende und ich den internen pullup des portes verwende...


Code:
$regfile = "m8def.dat"
$crystal = 8000000

$framesize = 256
$swstack = 256
$hwstack = 256

Config Portb = Output

Config Portd.6 = Output
Portd.6 = 0
Config Portd.7 = Output
Portd.7 = 0

Dim Umdrehung As Word
Dim Spaltenzeit As Byte
Dim A As Byte
Dim X As Byte
Dim X_7 As Byte
Dim I As Byte
Dim L As Byte
Dim Anzeige As String * 30
Dim Zeichen As String * 1
Dim Zeichenasc As Byte
Dim Spalte(150) As Byte
Dim Laenge As Byte
Dim Spalten As Byte
Dim Index As Word
Dim Stelle As Byte
Dim Spalteanz As Byte
Dim Spalteleer As Byte
Dim Spalteleer_7 As Byte

Config Int0 = Falling
On Int0 Int0isr
Enable Int0
Config Portd.2 = Input
Portd.2 = 1


Config Timer0 = Timer , Prescale = 64
On Timer0 Timer0isr
Enable Timer0

Config Timer1 = Timer , Prescale = 8
On Timer1 Timer1isr
Enable Timer1

Enable Interrupts

Start Timer0
Start Timer1

Anzeige = "Roman Sutter"

Portd.6 = 1
Portb.7 = 0



Do

   Spalteleer = 133

   Incr L

   Zeichen = Mid(anzeige , L , 1)
   Laenge = Len(anzeige)
   Spalten = Laenge * 7

   Zeichenasc = Asc(zeichen)

   If Zeichen = " " Then
     For I = 1 To 7
       Incr Stelle
       Spalte(stelle) = 255
     Next I
   End If

   If Zeichenasc >= 65 And Zeichenasc <= 90 Then
     Index = Zeichenasc - 65
     Index = Index * 5
     For I = 1 To 5
        Incr Stelle
        Spalte(stelle) = Lookup(index , Abc_gross)
        Incr Index
     Next I
     Incr Stelle
     Spalte(stelle) = 255
     Incr Stelle
     Spalte(stelle) = 255
   End If

   If Zeichenasc >= 97 And Zeichenasc <= 122 Then
     Index = Zeichenasc - 97
     Index = Index * 5
     For I = 1 To 5
        Incr Stelle
        Spalte(stelle) = Lookup(index , Abc_klein)
        Incr Index
     Next I
     Incr Stelle
     Spalte(stelle) = 255
     Incr Stelle
     Spalte(stelle) = 255
   End If

   If Zeichenasc >= 48 And Zeichenasc <= 57 Then
     Index = Zeichenasc - 48
     Index = Index * 5
     For I = 1 To 5
        Incr Stelle
        Spalte(stelle) = Lookup(index , 123)
        Incr Index
     Next I
     Incr Stelle
     Spalte(stelle) = 255
     Incr Stelle
     Spalte(stelle) = 255
   End If

Loop Until L = Laenge

Do
nop
Loop


Int0isr:
   Waitms 5
   Umdrehung = Timer1
   Umdrehung = Umdrehung / 1200
   Spaltenzeit = Umdrehung
   Timer1 = 0
   Timer0 = 0
   A = 0
   Spalteanz = 0
   If X <> Spalten Then
     Spalteleer = Spalteleer - 7
     Spalteleer_7 = Spalteleer + 7
     If Spalteleer = X_7 Then
       Spalteleer = 133
       X = X + 7
       X_7 = X + 7
     End If
   Else
     Portd.6 = 0
     Portd.7 = 1
   End If

Return


Timer0isr:
   Load Timer0 , Spaltenzeit

   Incr A
   If A > X Then
     If A > Spalteleer Then
       If A > Spalteleer_7 And A > X_7 And A > Spalteanz Then
         Portb = 255
        Else
         Incr Spalteanz
         Portb = Spalte(spalteanz)
       End If
      Else
       Portb = 255
     End If
   Else
     Incr Spalteanz
     Portb = Spalte(spalteanz)
   End If
Return


Timer1isr:

Return


Abc_gross:
Data &B10000001 , &B01101111 , &B01101111 , &B01101111 , &B10000001
Data &B00000001 , &B01101101 , &B01101101 , &B01101101 , &B10010011
Data &B11000111 , &B10111011 , &B01111101 , &B01111101 , &B01111101
Data &B00000001 , &B01111101 , &B01111101 , &B10111011 , &B11000111
Data &B00000001 , &B01101101 , &B01101101 , &B01111101 , &B01111101
Data &B00000001 , &B01101111 , &B01101111 , &B01111111 , &B01111111
Data &B10000011 , &B01111101 , &B01101101 , &B01101101 , &B01100011
Data &B00000001 , &B11101111 , &B11101111 , &B11101111 , &B00000001
Data &B11111111 , &B01111101 , &B00000001 , &B01111101 , &B11111111
Data &B11111011 , &B01111101 , &B00000001 , &B01111111 , &B11111111
Data &B00000001 , &B11101111 , &B11010111 , &B10111011 , &B01111101
Data &B00000001 , &B11111101 , &B11111101 , &B11111101 , &B11111101
Data &B00000001 , &B10111111 , &B11001111 , &B10111111 , &B00000001
Data &B00000001 , &B11011111 , &B11101111 , &B11110111 , &B00000001
Data &B10000011 , &B01111101 , &B01111101 , &B01111101 , &B10000011
Data &B00000001 , &B01101111 , &B01101111 , &B01101111 , &B10011111
Data &B10000011 , &B01111101 , &B01110101 , &B01111011 , &B10000101
Data &B00000001 , &B01101111 , &B01100111 , &B01101011 , &B10011101
Data &B10011101 , &B01101101 , &B01101101 , &B01101101 , &B01110011
Data &B01111111 , &B01111111 , &B00000001 , &B01111111 , &B01111111
Data &B00000011 , &B11111101 , &B11111101 , &B11111101 , &B00000011
Data &B00000111 , &B11111011 , &B11111101 , &B11111011 , &B00000111
Data &B00000011 , &B11111101 , &B11100011 , &B11111101 , &B00000011
Data &B00111001 , &B11010111 , &B11101111 , &B11010111 , &B00111001
Data &B00011111 , &B11101111 , &B11110001 , &B11101111 , &B00011111
Data &B01111001 , &B01110101 , &B01101101 , &B01011101 , &B00111101

Abc_klein:
Data &B11111011 , &B11010101 , &B11010101 , &B11010101 , &B11100001
Data &B00000001 , &B11110101 , &B11101101 , &B11101101 , &B11110011
Data &B11100011 , &B11011101 , &B11011101 , &B11011101 , &B11111011
Data &B11110011 , &B11101101 , &B11101101 , &B11110101 , &B00000001
Data &B11100011 , &B11010101 , &B11010101 , &B11010101 , &B11100111
Data &B11101111 , &B10000001 , &B01101111 , &B01111111 , &B10111111
Data &B11001111 , &B10110101 , &B10110101 , &B10110101 , &B10000011
Data &B00000001 , &B11101111 , &B11011111 , &B11011111 , &B11100001
Data &B11111111 , &B11111111 , &B10100001 , &B11111111 , &B11111111
Data &B11111011 , &B11111101 , &B11011101 , &B01000011 , &B11111111
Data &B00000001 , &B11110111 , &B11101011 , &B11011101 , &B11111111
Data &B11111111 , &B01111101 , &B00000001 , &B11111101 , &B11111111
Data &B11000001 , &B11011111 , &B11100111 , &B11011111 , &B11100001
Data &B11000001 , &B11101111 , &B11011111 , &B11011111 , &B11100001
Data &B11100011 , &B11011101 , &B11011101 , &B11011101 , &B11100011
Data &B11000001 , &B11010111 , &B11010111 , &B11010111 , &B11101111
Data &B11101111 , &B11010111 , &B11010111 , &B11100111 , &B11000001
Data &B11000001 , &B11101111 , &B11011111 , &B11011111 , &B11101111
Data &B11101101 , &B11010101 , &B11010101 , &B11010101 , &B11111011
Data &B11011111 , &B00000011 , &B11011101 , &B11111101 , &B11111011
Data &B11000011 , &B11111101 , &B11111101 , &B11111011 , &B11000001
Data &B11000111 , &B11111011 , &B11111101 , &B11111011 , &B11000111
Data &B11000011 , &B11111101 , &B11110011 , &B11111101 , &B11000011
Data &B11011101 , &B11101011 , &B11110111 , &B11101011 , &B11011101
Data &B11001111 , &B11110101 , &B11110101 , &B11110101 , &B11000011
Data &B11011101 , &B11011001 , &B11010101 , &B11001101 , &B11011101


123:
viel spass damit
gruss bluesmash