Hallo an alle
Ich habe eine für mich elegante Lösung gefunden bestimmte Bilder zu wiederholen. Und zwar nutze ich die zwei freien Ausgänge von PortB.
Code
Data &B10001000 , &B00000000 , &B01000010 , &B00111110 '2. Bild Ebene 1
Data &B10001000 , &B00000000 , &B00000010 , &B00111101 '2. Bild Ebene 2
Data &B10001000 , &B00000000 , &B00000010 , &B00111011 '2. Bild Ebene 3
Data &B10001000 , &B00000000 , &B00000010 , &B00110111 '2. Bild Ebene 4
Data &B10001000 , &B00000000 , &B00000010 , &B00101111 '2. Bild Ebene 5
Data &B10001000 , &B00000000 , &B01000010 , &B00111110 '2. Bild Ebene 1
Das Rot makierte ist bei mir PortB. Ich setze dort den Pin6 auf eins und makiere damit den Startpunkt für die Wiederholung.
Code
Data &B00000000 , &B00001000 , &B00000000 , &B00011110 '5. Bild Ebene 1
Data &B00000011 , &B10010100 , &B00111000 , &B00011101 '5. Bild Ebene 2
Data &B11111100 , &B01100011 , &B00000111 , &B11111011 '5. Bild Ebene 3
Data &B00000011 , &B10010100 , &B00111000 , &B00010111 '5. Bild Ebene 4
Data &B00000000 , &B00001000 , &B10000000 , &B00001111 '5. Bild Ebene 5
Data &B00000000 , &B00001000 , &B10000000 , &B00001111 '5. Bild Ebene 5
Und das Ende mit Pin7.
Das ganze wird dann hier ausgewerdet.
If Portb.6 = 1 Then
Anzahl = 3
Bildstart = Bild
Elseif Portb.7 = 1 Then
Bildstop = Bild
End If
Code
Do
For Wiederholung = 0 To Anzahl
For Bild = Bildstart To Bildstop
If Bild > 8 And Bild < 500 Then
Zeit = 6
Else
Zeit = 20
End If
For Dauer = 0 To Zeit ' Dauer des Bildes, Bild (50 ms) wird 20x angezeigt, also 1 Sekunde
For Ebene = 0 To 4 ' 5 Ebenen durchmultiplexen
Offset = Bild * 20 ' Offset Berechnen, 20 Byte pro Bild
Temp = Ebene * 4 ' 4 Byte pro Ebene
Offset = Offset + Temp
Portc = Lookup(offset , Muster) ' 1. Byte-Muster ausgeben
Offset = Offset + 1
Portd = Lookup(offset , Muster) ' 2. Byte-Muster ausgeben
Offset = Offset + 1
Portb = Lookup(offset , Muster) ' 3. Byte-Muster ausgeben
If Portb.6 = 1 Then
Anzahl = 3
Bildstart = Bild
Elseif Portb.7 = 1 Then
Bildstop = Bild
End If
Offset = Offset + 1
Porta = Lookup(offset , Muster) ' 4. Byte-Muster ausgeben
Offset = Offset + 1
Waitms 4 ' diese Ebene für 5 ms anzeigen
Next Ebene
Next Dauer
Next Bild
Next Wiederholung
Bildstart = Bild + 1 'Hier wird alles wieder korrigiert damit es normal weiter geht
Bildstop = 353
Anzahl = 0
Loop
Alles anzeigen
Gut die Anzahl ist fest, aber immerhin.