
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo zusammen, mit Hilfe der "Grundrechenarten in 32 Bit für Open-Macro und Open-Maxi" habe ich den Sourcecode um eine Mittelwertbildung ergänzt. Unten bei "Passender Link" habe ich den gesamten von mir verwendeten Sourcecode verlinkt. Freundliche Grüße Dietmar ' ----------------------------------------------------------------------- ' Statistik-Challenge: Auswertung Aufrufzahlen des C-Control/Intern Forum ' von Beitrag 1 bis 18165 - mit ansteigender Funktionalitaet. Mitmachen! ' Unter 1,6 Sekunden bleiben. Weitere Informationen im Forum (siehe Link). ' Link: https://ccintern.dharlos.de/forum/lesen.php?eintrag=18129 ' ------------------------------------------------------------------------ ' Ermittlung des Mittelwerts mittels "Grundrechenarten in 32 Bit". ' ------------------------------------------------------------------------ 'option OPENMAXI INCLUDE "omax.def" 'Definitionen fuer die Open-Maxi ' --- Definitionen für "Grundrechenarten in 32 Bit" ------------------------- DEFINE a AS LONG 'Erster 32-Bit-Akkumulator (1. Operand & Rechenergebnis) DEFINE b AS LONG 'Zweiter 32-Bit-Akkumulator (2. Operand) DEFINE c AS LONG 'Dritter 32-Bit-Akkumulator (temp. fuer DIV und PRINT32) DEFINE a1 AS BYTE[1] OF a 'LSB 'fuer den Zugriff in BASIC DEFINE a2 AS BYTE[2] OF a DEFINE a3 AS BYTE[3] OF a DEFINE a4 AS BYTE[4] OF a 'MSB DEFINE alw AS WORD[1] OF a 'LSW 'fuer den Zugriff in BASIC DEFINE ahw AS WORD[2] OF a 'MSW DEFINE b1 AS BYTE[1] OF b 'fuer den Zugriff in BASIC DEFINE b2 AS BYTE[2] OF b DEFINE b3 AS BYTE[3] OF b DEFINE b4 AS BYTE[4] OF b DEFINE blw AS WORD[1] OF b 'LSW 'fuer den Zugriff in BASIC DEFINE bhw AS WORD[2] OF b 'MSW ' --------------------------------------------------------------------------- DEFINE c_MAX_BEITRAG_ID 18165 DEFINE c_MIN_BEITRAG_ID 1 DEFINE beitragsnummer, systicks_start, systicks_finish, systicks_elapsed, mittelwert, wieoftabgerufen, meist_wieoft, meist_beitrag AS WORD 'PrintSpc=ON 'Bei PRINT dezimale Zahlen mit führendem Leerzeichen ausgeben 'define End2Host ivar [88] ' bei END in den Hostmodus (unabh. vom START-Pin) End2Host=ON ?"OXFSTAT0.BAS.ocb ":? 'Erste PRINT String Anweisung im Quelltext als Label nutzen (Lbit-Konvention). PRINT "Beginne Auswertung... ("; c_MAX_BEITRAG_ID ;" Beitraege)" systicks_start=timer ahw=0 alw=0 FOR beitragsnummer=c_MIN_BEITRAG_ID TO c_MAX_BEITRAG_ID LOOKTAB Anzahl_Aufrufe_3,beitragsnummer,wieoftabgerufen bhw=0 blw=wieoftabgerufen ' addieren 'Zeitbedarf ca. 2240 ms SYS addieren 'Zeitbedarf ca. 2100 ms ' ?beitragsnummer;" ";wieoftabgerufen;" "; ' print32 ' ? IF wieoftabgerufen > meist_wieoft THEN meist_wieoft=wieoftabgerufen meist_beitrag=beitragsnummer ENDIF IF rxd THEN Auswertung NEXT #Auswertung systicks_finish=timer systicks_elapsed=systicks_finish-systicks_start PRINT "Zeitbedarf ca. "; IF systicks_elapsed >-1 AND systicks_elapsed <=1638 THEN PRINT systicks_elapsed*20; ELSE PRINT"(?)"; 'Ueberlauf, bei mehr als 32 Sekunden Programmlaufzeit... ENDIF PRINT " ms" PRINT "Zeitnahme(raw): ";systicks_start;",";systicks_finish;",";systicks_elapsed PRINT "MIN_BEITRAG_ID: ";c_MIN_BEITRAG_ID PRINT "MAX_BEITRAG_ID: ";c_MAX_BEITRAG_ID PRINT "Analyse bis ID: ";beitragsnummer - c_MIN_BEITRAG_ID +1 PRINT "'Hirunner:' ID: ";meist_beitrag PRINT " |____ Aufrufe: ";meist_wieoft PRINT "Summe : ";:print32:? bhw=0 blw=c_MAX_BEITRAG_ID dividieren PRINT "Mittelwert : ";:print32:? #Ende ?:? "Auswertung beendet - Hostmodus" END Include "aufrufe3.tab" ' Die Tabelle "Anzahl_Aufrufe_3" wird extern via Include "aufrufe3.tab" ' geladen. Die nachfolgend eingeklammerte Tabelle dient nur der Simulation ' bei Entwicklung. ' TABLE Anzahl_Aufrufe_3 ' c_MAX_BEITRAG_ID ' TABEND ' --------------------------------------------------------------------------- INCLUDE "32BITASM.PRO" 'INCLUDE-Datei für 32-Bit-Arithmetik ' --------------------------------------------------------------------------- INCLUDE "OM_FW.PRO" 'INCLUDE-Datei für Firmwareroutinen ' -------------------------------------------------------------------------- Passender Link: OXFSTAT0_mittel.zip Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |