Ah das ist ja super ich dachte es wäre gar nicht möglich...
Muss ich das "Label Sectic" selbst definieren?
Oder mach ich das mit dem Display_off?
Ich hab es so versucht (siehe Anhang) Jedoch läuft er wie es mir dacht habe, von links nach rechts durch und blinkt nicht..
Code:
$regfile = "m16DEF.DAT"
$crystal = 16000000
Config Porta = Input
Config Portb = Output
Config Portc = Output
Config Portd = Output
Dim Offset As Word 'kann auch byte sein, wenn du nicht mehr als 50 Zeichen brauchst
Dim Zeichen As Byte
Dim Spalte As Byte
Dim Werte As Byte
Dim Display_off As Byte , Max_display_off As Byte ,
Dim Blink_an As Byte , Max_blink_an As Byte
Config Dcf77 = Pind.7 , Check = 2 , Timer = 1 , Timer1sec = 1 , Debug = 1 , Sectic = 1
Config Timer0 = Timer , Prescale = 64 'timer läuft alle 16.000.000/256/256=250.stel Sekunde über, also etwa alle 4ms
On Timer0 Timer0_isr
Enable Timer0
Enable Interrupts
Spalte = 0
Do
Zeichen = Asc( "2")
If Pina.7 = 1 Then Max_display_off = 4
If Pina.7 = 0 Then Max_display_off = 0
If Pina.6 = 1 Then Max_blink_an = 40
If Pina.6 = 0 Then Max_blink_an = 0
Loop
Timer0_isr:
Offset = Zeichen - 49
Offset = Offset * 5 'immer 5 Werte pro Zeichen
If Spalte = 5 Then
Spalte = 0
End If
Offset = Offset + Spalte
Werte = Lookup(offset , Zeichen_data)
Incr Display_off
Incr Blink_an
Portd = 0 'zum Verhindern von Geisterbildern
If Display_off > Max_display_off Then 'damit bleibt das Zeichen immer für eine bestimmte Zeit aus
Display_off = 0
If Blink_an > Max_blink_an Then
Blink_an = 0
Portb = Werte 'lädt die Werte
Portd.spalte = 1 'Gibt die Spalte frei
Incr Spalte
End If
End If
Return
Zeichen_data:
Data &B11111111 , &B10111101 , &B10000000 , &B10111111 , &B11111111 '1
Data &B10111101 , &B10011110 , &B10101110 , &B10110110 , &B10111001 '2
Mfg Tryan
Lesezeichen