Hallo Leute,
ich habe mir eine 7-Segmentanzeige mit 4 Stellen gebaut. Dazu habe ich vier Segmente mit CA jeweils an PNP-Transistoren geschaltet, und die einzelnen Pins an einen ULN2803A. Die Anzeige funktioniert nach vielen Tests soweit auch, doch habe ich ein enormes Zeitproblem. Damit meine ich, dass wenn ich eine 4stellige Zahl im Terminal von Bascom eingebe, es erst einmal eine Sekunde braucht, bis mir diese überhaupt im PC angezeigt wird, und wenn ich Enter gedrückt habe es noch einmal ca. 1 Sekunde braucht bis das Display am MC umschlägt... . Woran liegt das und wie kann ich das ändern/verbessern ?
Der Einsteiger
Und hier noch das Programm :
Code:$regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 200 $swstack = 200 $framesize = 400 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim Stringinput As String * 10 Dim A As Byte Dim Var1 As Byte Dim Var2 As Byte Dim Var3 As Byte Dim Var4 As Byte Dim Stelle1 As String * 2 Dim Stelle2 As String * 2 Dim Stelle3 As String * 2 Dim Stelle4 As String * 2 Dim Dis(11) As Byte Dim Cnt As Byte Cnt = 0 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Config Serialin = Buffered , Size = 20 'Summer: Config Portd.7 = Output 'einzelne Elemente Config Portd.3 = Output Config Portd.4 = Output Config Portd.5 = Output Config Portd.6 = Output Portd.3 = 1 Portd.4 = 1 Portd.5 = 1 Portd.6 = 1 Config Portc = Output Config Timer1 = Timer , Prescale = 8 On Timer1 Timer_irq Const Timervorgabe = 25536 ' Pins Dis(1) = &B00111111 Dis(2) = &B00000110 Dis(3) = &B01011011 Dis(4) = &B01001111 Dis(5) = &B01100110 Dis(6) = &B01101101 Dis(7) = &B01111101 Dis(8) = &B00000111 Dis(9) = &B01111111 Dis(10) = &B01101111 Dis(11) = &B00000000 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Sound Portd.7 , 400 , 450 Sound Portd.7 , 400 , 250 Sound Portd.7 , 400 , 450 Wait 2 Enable Timer1 Enable Interrupts Do A = Ischarwaiting() If A = 1 Then Input Stringinput End If Disable Interrupts Stelle1 = Left(stringinput , 1) Stelle2 = Mid(stringinput , 2 , 1 ) Stelle3 = Mid(stringinput , 3 , 1 ) Stelle4 = Right(stringinput , 1) Var1 = Val(stelle1) Var2 = Val(stelle2) Var3 = Val(stelle3) Var4 = Val(stelle4) Enable Interrupts Wait 1 Loop End Timer_irq: Timer1 = Timervorgabe Cnt = Var1 + 1 Portd.3 = 0 Portc = Dis(cnt) Waitus 3333 Portc = Dis(11) Portd.3 = 1 Cnt = Var2 + 1 Portd.4 = 0 Portc = Dis(cnt) Waitus 3333 Portc = Dis(11) Portd.4 = 1 Cnt = Var3 + 1 Portd.5 = 0 Portc = Dis(cnt) Waitus 3333 Portc = Dis(11) Portd.5 = 1 Cnt = Var4 + 1 Portd.6 = 0 Portc = Dis(cnt) Waitus 3333 Portc = Dis(11) Portd.6 = 1 Return







Zitieren

Lesezeichen