Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > <basic>'Berechnung mit Word anstelle Single bringt fast nichts 995 zu 724 Takte > 'Spannungswert ADC mit 16 Bit Word Variable berechnen > ' ADC Mult Digit 5,00V Div Ganzzahl Ganzzahl > ' 1023 64 500 130,944 131 499,7862595 499 > 'hohe Auflösung durch Multipl. mit 64 und Dividieren mit 131 -Fehler gering > 'Anzeige erfolgt mit 2Kommastellen ... 4,99 > 'Test 17 und 18 zeigt Unterschied zwischen Float und Word Berechnung > 'Ungenauigkeit vernachlässigbar Zeitersparnis aber gering > > 'Ich habe nochmals getestet, das Ergebnis eindeutig ++Var (Byte) > 'benötigt 260 Takte. Auch mit Logik-Analyser Test 3 und 4: Impuls > 'mit ++Var 52us ohne 36us also ca. die berechneten 17us. > 'Differenz Test3 und 4 exakt 260 Takte. > > 'Weitere Bemerkung PortWriteBit durch selbermachen > '(DirAcc.. lesen,maskieren,ausgabe)ist um als 130 Takte langsamer - bei > 'gleichzeitig mehreren Bits - wieder effektiver. > 'if / Case schon ein grosser Unterschied > > > > 'ab und zu kommen mehr Takte heraus, vermutlich interne > 'Interruptverarbeitungen. Weniger allerdings nie. > ' Var=Var+1 hier 335 Takte habe ich mit anderen Programm schon > ' mal 291 herausbekommen? > > ' ADC_Set(ADC_VREF_VCC,0) > ' ADC_0 = ADC_Read() > 'Takte= 4008 271.742401us Takte= 2397 162.516601us Takte= 2382 161.499us > 'beim ersten Aufruf 4008, dann nurmehr ca 2380 ...bei Kanaltausch nicht > ' ULong überlauf hat keine Auswirkungen > > 'Messwertausgabe > 'Mess1 ++Var (Byte) Takte= 260 17.628000us Takte= 260 17.628000us > 'Mess2 Var=Var+1 (Byte) Takte= 335 22.712999us Takte= 335 22.712999us > 'Mess3 2xPort_WriteBit Takte= 1036 70.240798us Takte= 1036 70.240798us > 'Mess4 2xPort_WriteBit ++Var Takte= 1296 87.868797us Takte= 1296 87.868797us > 'Mess5 Port_Write Takte= 441 29.899799us Takte= 441 29.899799us > 'Mess6 DirAcc_Write Takte= 434 29.425199us Takte= 434 29.425199us > 'Mess7 PortBit Eigenbau Takte= 648 43.934398us Takte= 648 43.934398us > 'Mess8 Port_WriteBit Takte= 518 35.120399us Takte= 518 35.120399us > 'Mess9 Schleife 10000 N128= 4520 39.233600ms N128= 4519 39.224918ms > 'Mess10 ULong=Ulong+1 Takte= 484 32.815200us Takte= 484 32.815200us > 'Mess11 ULong vergleich Takte= 713 48.341400us Takte= 713 48.341400us > 'Mess12 Byte Vergleich Takte= 372 25.221599us Takte= 372 25.221599us > 'Mess13 ADC abfrage Takte= 4008 271.742401us Takte= 2448 165.974395us > 'Mess14 Case abfrage Takte= 906 61.426799us Takte= 906 61.426799us > 'Mess15 If abfrage Takte= 2380 161.363998us Takte= 2380 161.363998us > 'Mess16 ADC abfrage 8x Takte= 19404 1315.591186us > 'Mess17 Floatberech Takte= 995 67.460998us > 'Mess18 Word Mul/Div 2Komma Takte= 724 49.087200us Takte= 724 49.087200us > > 'Mess9 mit langsameren Takt - dh die 4520*128=578560 Takte daher in ms > > > 'Fertiges Programm zum Ausgeben von Messungen -einfach starten- > 'Ergebnis erscheint an Konsole > > > Dim Zeitfloat As Single > Dim Timervar As Word > Dim Var As Byte ' für Tests Nr1 ++Var, und Var=Var+1 > Dim Var2 As Byte > Dim i As Integer ' For Schleife > Dim Schleife As Integer > Dim Longvar As ULong > Dim Longvar2 As ULong > Dim Pausenzeit As Word > Dim ADC_0 As Word > Dim Wordvar As Word > Dim Floatvar As Single > > #define Pausenzeit 1000 '2sec Pause zwischen den Messungen > #define Duchlaufe 3 > #define Ref 0.004887 'Referenzspannungsfaktor für ADC - Test > > > > > Sub main() > Do While (1) > Port_DataDir(PortC,255 ) 'PortC alles Output.. zum Messen > > Msg_WriteText("Mess1 ++Var (Byte) " ) > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > 'bei 65000 wird Int ausgelöst, hier nicht verwendet > ++Var 'hier die Prüf - Anweisungen oder ganze Programmteile > 'bis max 4,4ms 67,8ns Takt = 14,..MHz > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > 'nun Test2: > > Msg_WriteText("Mess2 Var=Var+1 (Byte) " ) > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > Var=Var+1 'hier die Prüf - Anweisungen oder ganze Programmteile > 'bis max 4,4ms 67,8ns Takt = 14,..MHz > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > 'nun Test3: > > > Msg_WriteText("Mess3 2xPort_WriteBit " ) > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > Port_WriteBit(20,1) 'hier die Prüf - Anweisungen oder ganze Programmt. > Port_WriteBit(20,0) 'PortC.4 auf 0 > 'bis max 4,4ms 67,8ns Takt = 14,..MHz > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > 'nun Test4: > Msg_WriteText("Mess4 2xPort_WriteBit ++Var" ) > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > Port_WriteBit(20,1) 'hier die Prüf - Anweisungen oder ganze Programmt. > ++Var 'mit Logkanalyser können die zusätzlichen 260Takte.. > Port_WriteBit(20,0) > 'bis max 4,4ms 67,8ns Takt = 14,..MHz > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > 'nun Test5: > Msg_WriteText("Mess5 Port_Write " ) > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > Port_Write(PortC,255 ) 'hier die Prüf - Anweisungen oder ganze Programmt. > 'bis max 4,4ms 67,8ns Takt = 14,7456MHz > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > 'nun Test6: > Msg_WriteText("Mess6 DirAcc_Write " ) > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > DirAcc_Write(0x35,255 ) 'hier die Prüf - Anweisungen oder ganze Progr. > 'bis max 4,4ms 67,8ns Takt = 14,..MHz > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > 'nun Test7: > Msg_WriteText("Mess7 PortBit Eigenbau " ) > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > DirAcc_Write(0x35,DirAcc_Read(0x35 Or 00010000 ) ) > 'das PortC Register wird gelesen maskiert und damit Bit 4 gesetzt > 'hier die Prüf - Anweisungen oder ganze Programmteile > 'bis max 4,4ms 67,8ns Takt = 14,..MHz > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > 'nun Test8: > Msg_WriteText("Mess8 Port_WriteBit " ) > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > Port_WriteBit(20,1) 'hier die Prüf - Anweisungen oder ganze Programmt. > 'bis max 4,4ms 67,8ns Takt = 14,..MHz > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > 'nun Test9: hier langsamerer Takt: 8,68us > Msg_WriteText("Mess9 Schleife 10000 " ) > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,5) ' Startpunkt der Messung mit 8,68usTakt > For Schleife = 1 To 10000'hier die Prüf - Anweisungen oder ganze Progr. > ++Var > Next 'bis zu 0,56sec > Msg_Laufzeit128T() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > 'nun Test10: > Msg_WriteText("Mess10 ULong=Ulong+1 " ) > Longvar = 4294967294 ' damit in 2. Durchlauf ein Überlauf entsteht > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > 'hier die Prüf - Anweisungen oder ganze Programmteile > Longvar = Longvar + 1 'bis max 4,4ms 67,8ns Takt = 14,..MHz > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > 'nun Test11: > Msg_WriteText("Mess11 ULong vergleich " ) > Longvar = 4294967000 ' > Longvar = 4294967010 'eine hohe Zahl - es müssen alle 32 Bits vergl. > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > 'hier die Prüf - Anweisungen oder ganze Programmteile > If Longvar2 < Longvar Then 'bis max 4,4ms 67,8ns Takt = 14,..MHz > ++Var ' hier vergleich nicht erfüllt, Var bleibt gleich > End If > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > > > 'nun Test12: > Msg_WriteText("Mess12 Byte Vergleich " ) > Var = 222 ' > Var2 = 243 ' > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > 'hier die Prüf - Anweisungen oder ganze Programmteile > If Var2 < Var Then 'bis max 4,4ms 67,8ns Takt = 14,..MHz > ++Var ' hier vergleich nicht erfüllt, Var bleibt gleich > End If > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > > 'nun Test13: > Msg_WriteText("Mess13 ADC abfrage " ) ' > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > 'hier die Prüf - Anweisungen oder ganze Programmteile > ADC_Set(ADC_VREF_VCC,0) > ADC_0 = ADC_Read() > > 'Takte= 4008 271.742401us Takte= 2397 162.516601us Takte= 2382 161.49.. > 'beim ersten Aufruf 4008, dann nurmehr ca 2380 > > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > 'nun Test14: > Msg_WriteText("Mess14 Case abfrage " ) ' > Var=5 > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > 'hier die Prüf - Anweisungen oder ganze Programmteile > Select Case Var > Case 1 > ++Var2 > Case 2 > ++Var2 > Case 3 > ++Var2 > Case 4 > ++Var2 > Case 5 > ++Var2 > Case 6 > ++Var2 > End Select > > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > > 'nun Test15: > Msg_WriteText("Mess15 If abfrage " ) ' > Var=5 > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > 'hier die Prüf - Anweisungen oder ganze Programmteile > If Var = 1 Then > ++Var2 > End If > If Var = 2 Then > ++Var2 > End If > If Var = 3 Then > ++Var2 > End If > If Var = 4 Then > ++Var2 > End If > If Var = 5 Then > ++Var2 > End If > If Var = 6 Then > ++Var2 > End If > 'ist nicht exakt mit obiger Case vergleichbar, aber ähnlich > > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > 'nun Test16: > Msg_WriteText("Mess16 ADC abfrage 8x " ) ' > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > 'hier die Prüf - Anweisungen oder ganze Programmteile > ADC_Set(ADC_VREF_VCC,0) > ADC_0 = ADC_Read() > ADC_Set(ADC_VREF_VCC,1) > ADC_0 = ADC_Read() > ADC_Set(ADC_VREF_VCC,2) > ADC_0 = ADC_Read() > ADC_Set(ADC_VREF_VCC,3) > ADC_0 = ADC_Read() > ADC_Set(ADC_VREF_VCC,4) > ADC_0 = ADC_Read() > ADC_Set(ADC_VREF_VCC,5) > ADC_0 = ADC_Read() > ADC_Set(ADC_VREF_VCC,6) > ADC_0 = ADC_Read() > ADC_Set(ADC_VREF_VCC,7) > ADC_0 = ADC_Read() > > > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > > 'nun Test17: > Msg_WriteText("Mess17 Floatberech " ) ' > Wordvar=1023 > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > 'hier die Prüf - Anweisungen oder ganze Programmteile > Floatvar = Wordvar * Ref > 'Mess17 Floatberech Takte= 995 67.460998us Takte= 995 67.460998us > > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteText("U=") > Msg_WriteFloat(Floatvar) > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > > 'nun Test18: > Msg_WriteText("Mess18 Word Mul/Div 2Komma" ) ' > Wordvar=1023 > For i = 1 To Duchlaufe 'für 3-malige Ausgabe in einer Zeile > AbsDelay(2 ) ' unbedingt notwendig!!! nur mit 2ms Pause konstante Werte > Timer_T1Time(65000,1) ' Startpunkt der Messung 67,8ns Takt Cnt1 = 0 > 'hier die Prüf - Anweisungen oder ganze Programmteile > > ADC_0 = Wordvar * 64 / 131 > 'Mess18 Word Mul/Div 2Komma Takte= 724 49.087200us Takte= 724 49.087200us > > Msg_Laufzeit1() ' Aufruf der Sub (Cnt Auslesung und Korrektur) > Next > Msg_WriteText("U=") > Msg_WriteWord(ADC_0 ) > > Msg_WriteChar(13) 'CR ... Neue Zeile > AbsDelay(Pausenzeit ) 'Zeit zum ablesen > > > > > > > > > > Msg_WriteChar(13) 'CR ... Neue Zeile letzte Zusatzzeile > End While > End Sub 'main ************************************ > > > > Sub Msg_Laufzeit1 () ' Sub für Messung und Ausgabe > Timervar = Timer_T1GetCNT() - 455 ' Korr-Wert wenn kein Befehle > Msg_WriteText(" Takte= ") > Msg_WriteWord(Timervar ) ' Takte 67,8ns ... 14,..MHz > Msg_WriteChar(32 ) > Zeitfloat = Timervar * 0.0678 ' Wert in us > Msg_WriteFloat(Zeitfloat ) > Msg_WriteText("us" ) > Msg_WriteChar(32 ) > End Sub > > /* > AbsDelay(2 ) ' unbedingt notwendig!!! > Timer_T1Time(65000,1) ' Startpunkt der Messung > Msg_Laufzeit2() ' Aufruf der Sub > */ > Sub Msg_Laufzeit2 () ' nur mit 2ms Pause konstante > Timervar = Timer_T1GetCNT() - 455 ' Werte sonst 30-64us > Msg_WriteText(" Nr2= ") > Msg_WriteWord(Timervar ) ' Takte 67,8ns ... 14,..MHz > Msg_WriteChar(32 ) > Zeitfloat = Timervar * 0.0678 ' Wert in us > Msg_WriteFloat(Zeitfloat ) > Msg_WriteChar(32 ) > End Sub > > /* > AbsDelay(2 ) ' unbedingt notwendig!!! > Timer_T1Time(65000,1) ' Startpunkt der Messung > Msg_Laufzeit1() ' Aufruf der Sub > */ > Sub Msg_Laufzeit3 () ' nur mit 2ms Pause konstante > Timervar = Timer_T1GetCNT() - 455 ' Werte sonst 30-64us > Msg_WriteText(" Nr3= ") > Msg_WriteWord(Timervar ) ' Takte 67,8ns ... 14,..MHz > Msg_WriteChar(32 ) > Zeitfloat = Timervar * 0.0678 ' Wert in us > Msg_WriteFloat(Zeitfloat ) > Msg_WriteChar(32 ) > End Sub > > /* > AbsDelay(2 ) ' unbedingt notwendig!!! > Timer_T1Time(65000,1) ' Startpunkt der Messung > Msg_Laufzeit4() ' Aufruf der Sub > */ > Sub Msg_Laufzeit4 () ' nur mit 2ms Pause konstante > Timervar = Timer_T1GetCNT() - 455 ' Werte sonst 30-64us > Msg_WriteText(" Nr4= ") > Msg_WriteWord(Timervar ) ' Takte 67,8ns ... 14,..MHz > Msg_WriteChar(32) > Zeitfloat = Timervar * 0.0678 ' Wert in us > Msg_WriteFloat(Zeitfloat ) > Msg_WriteChar(32) > 'Msg_WriteChar(13) ' CR Zeilenvorschub > End Sub > > > /* > AbsDelay(2 ) ' unbedingt notwendig!!! > Timer_T1Time(65000,5) ' Startpunkt der Messung mit 8,68usTakt > Msg_Laufzeit128T() ' Aufruf der Sub > */ > Sub Msg_Laufzeit128T () ' nur mit 2ms Pause am Beginn konstante Werte !! > Schleife = Schleife + 1 - 1 ' Zeitverbrauch damit wenige Takte abgezogen > Timervar = Timer_T1GetCNT() - 1 ' Korrektur -1 > Msg_WriteText(" N128= ") ' bis zu 0,56sec > Msg_WriteWord(Timervar ) ' 128 Takte 8,68us ... > Msg_WriteChar(32) > Zeitfloat = Timervar * 0.00868 ' Wert in ms! > Msg_WriteFloat(Zeitfloat ) > Msg_WriteText("ms") > Msg_WriteChar(32) > 'Msg_WriteChar(13) ' CR Zeilenvorschub > End Sub > > /* > AbsDelay(2 ) ' unbedingt notwendig!!! > Timer_T1Time(65000,7) ' Startpunkt der Messung mit 69,44usTakt > > ************* Achtung Vor-Teiler 6 und 7 geht nicht! > > Msg_Laufzeit1024T() ' Aufruf der Sub > */ > Sub Msg_Laufzeit1024T () ' nur mit 2ms Pause konstante Werte!! > Timervar = Timer_T1GetCNT() '- 455 ' > Msg_WriteText(" N1024= ") ' bis zu 4,485sec > Msg_WriteWord(Timervar ) ' 1024 Takte 69,44us ... > Msg_WriteChar(32) > Zeitfloat = Timervar * 0.06944 ' Wert in ms! > Msg_WriteFloat(Zeitfloat ) > Msg_WriteText("ms") > Msg_WriteChar(32) > Msg_WriteChar(13) ' CR Zeilenvorschub > End Sub > > > </basic>