Re: 2 Zeiten erfassen per Mega 128 Kategorie: Programmierung Basic (von Jürgen A. - 6.11.2012 22:20) | ||
Als Antwort auf Re: 2 Zeiten erfassen per Mega 128 von Franz-Peter - 6.11.2012 21:08 | ||
| ||
> > > > Hallo > > > > > > > > ich bin leider noch unerfahren was die Programmierung der Mega 128 angeht, > > > > da ich sie erst bestellt habe und sie mir erst noch in den Nächsten Tagen zugestellt werden muss. > > > > > > > > Habe zwar schon vor ein paar jahren mit der BASIC 1 erfolgreich dinge erledigt, > > > > aber irgendwann ging sie Kaputt und nun ist ein neues Projekt da, wo ich mich für die Mega 128 entschieden habe. > > > > > > > > Kurz um, habe ich mir die IDE (2.13.0.15 Heruntergeladen und installiert) > > > > um schonmal vorab das eine oder andere an der IDE kennen zu lernen ect. p.p. > > > > > > > > Jetzt zu mein Problem. > > > > > > > > Ich möchte gern eine Zeitmessung vornehmen können, die Genauigkeit auf 100ms wäre schön, > > > > aber im zweifel reicht auch erst einmal sekunden genau. > > > > > > > > Um die Messung zu Starten wird ein Schalter wohl der Startknopf werden. > > > > > > > > Um die Messung zu stoppen, muss ein 2. Schalter her.... > > > > Da ich 2 Zeiten benötige (Wettrennen sozusagen) wird noch ein 3. Schalter benötigt. > > > > > > > > (Die Anschluss geschichte selbst ist hier weniger das Problem....) > > > > > > > > Nun gibt es bei der Mega 128 wohl 3 timer wobei timer_0 wohl nicht benutzt werden darf, > > > > da ihn die Mega128 selbst benötigt... > > > > > > > > Ok also bleiben noch 2 Timer.... > > > > > > > > aber irgendwie versteh ich das ganze nicht wirklich... > > > > > > > > Vorteiler???? Was ist das, was bewirkt das genau, warum muss dieser gesetzt / eingestellt werden? > > > > > > > > wie erfasse ich nun am besten die beiden Kurzzeitigen StopSignale > > > > (Kurzzeitig = weniger als 0,5 Sek) zuverlässig. > > > > > > > > Und Wie bekomme ich am ende die Zeit angezeigt? > > > > Klar per LCD aber ich mein woher bekomme ich die Verbrauchte Zeit vom Start bis zum Stop1Signal > > > > bzw. Stop2Signal? > > > > > > > > Tut mir leid wenn ich damit nicht (noch nicht) klar komme, > > > > aber da das ganze bei der M128 für mich Neuland ist, muss ich mich damit erst einmal zurecht Fummeln. > > > > > > > > Kurz nochmal: > > > > 1. Startknopf (Rennen beginnt) bei 00:00.00 (mm:ss.hs) > > > > 2. StopKnopf 1 Zeit ermitteln für ersten (01:28.54) 1m 28s 54hs > > > > 3. Stopknopf 2 Zeit ermitteln für zweiten (01:29.34) 1m 29s 34hs > > > > > > > > Ich wäre für sachdienliche Hinweise zur Festsetzung der Zeiterfassung dankbar. > > > > > > > > > > > Hallo Jürgen, > > > zunächst mal zum Vorteiler: Damit man mit dem Timer Zeiten messen kann, muss er in einem > > > gleichmässigen Zeitraster hochgezählt werden. Am einfachsten verwendet man dafür den Systemtakt. > > > Das sind bei der Mega128 14,7456MHz. Wenn man die direkt auf den Timer gibt, kann mann zwar > > > mit sehr hoher Auflösung messen, aber nur sehr kurze Zeiten, denn ein 8-Bit bzw 16-Bit > > > Zähler läuft da schon nach ca. 17,4µs bzw 4,44ms über. Um grö�ere Zeiträume messen zu können, wird > > > der Timer nur z.B. jeden 256. oder 1024. Takt erhöht. Genau dass erledigt der Vorteiler. Dann kann > > > man auch längere Zeiträume messen, hat allerdings nicht mehr eine so hohe Auflösung. > > > Für Deine Anforderung würde ich aber gar keinen Timer direkt verwenden. Die Bibliothek bietet > > > einen Interrupt, der alle 10ms aufgerufen wird. Nachzulesen in der Hilfe unter > > > Bibliotheken->Interrupt->IRQ Beispiel. Wenn Du in der IRQ-Routine eine Variable incrementierst > > > kannst Du damit im 10ms Raster Zeiten messen. > > > In der Hauptschleife die Variable beim Drücken des Startknopfes zu 0 setzen und mit den Stop- > > > Knöpfen auslesen. Du kannst in der Interruptroutine auch mit mehreren Variablen für ms, sec, min > > > arbeiten, die du entsprechend incrementierst, dann sparst Du dir das Umrechnen für die Anzeige. > > > Gru� > > > Franz-Peter > > > > > > > Hallo Franz-Peter, > > > > vielen Dank für deine Erklärung hinsichtlich der/des Vorteilers. > > Das hab ich jetzt auch soweit verstanden. > > > > Ja die IRQ Sache hatte ich schon gesehen in der Hilfe, hatte sie aber wohl falsch verstanden, > > da ich irgendwie davon aufging das dies mit einem IRQ Pin im Zusammenhang läge. > > In diesem Falle wei� ich dann schon wie ich das erledige. > > > > Eine Frage hätte ich noch... > > > > Wird die IRQ-Routine auch bei ABSDelay Verwendung in 10ms Takt angesprochen? > > Hab leider nur den Hinweiss gefunden das während der > > Abarbeitung des IRQ's das MultiThreading ausgesetzt wird. > > > > Vielen Dank nochmals > > > > Gru� Jürgen > > Hallo Jürgen, > ja - gute Frage, mit dem ABSDelay bin ich mir nicht sicher. Ich verwende den Befehl aber gar nicht, > sondern mache alle Zeitverzögerungen über den 10ms IRQ. Neben deiner Stoppuhr kannst Du ja auch > noch weitere Zeitvariable dort verwalten. Für den Delay z.B. > im IRQ mit einer int-Variablen 'Delay0': > if ( Delay0 > 0 ) Delay0--; > in Main dann: > Delay0= 100; while (Delay0>0); > ergibt 1s Verzögerung. Vorteil zu ABSDelay ist, dass man während der Wartezeit ( in der while- > Schleife) gegebenfalls auch noch anderes erledigen kann. Und die Stoppuhr läuft dann ganz sicher > auch weiter > > Gru� > Franz-Peter Hallo Franz-Peter, ja das macht sinn, verwende es in ähnlicher form zum teil in Software im Windows Sektor... Na ich schaue mir das ganze nochmal in ruhe an, manchmal mu� man eben erst ein Laubblatt gezeigt bekommen um den Wald zu sehen ;) ich Seh in deiner Signatur, du verwendest den ProBot128, ist das Richtig??? Hätte da vielleicht ein paar Fragen zu, ich habe ihn nicht, wollte mir ihn aber ggf. zulegen zu Lehr und Studien zwecke, da ich nach ein "Roboter" möglichkeit suche die mir auf Arbeit etwas Arbeit abnehmen könnte, Sprich möchte mir meine Arbeit etwas erleichtern durch Eigenentwicklung. Wäre nur hier jetzt zuviel. würde mich freuen wenn du mich per Mail ggf. Kontaktieren könntest, damit ich dir, solang es dir recht ist, Fragen stellen kann.... Falls du möchtest.... Gru� Jürgen | ||
Antwort schreiben Antworten: Re: 2 Zeiten erfassen per Mega 128 (von Franz-Peter - 7.11.2012 17:45) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 7.11.2012 21:55) Re: 2 Zeiten erfassen per Mega 128 (von Franz-Peter - 8.11.2012 10:34) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 11.11.2012 11:28) Re: 2 Zeiten erfassen per Mega 128 (von Franz-Peter - 15.11.2012 16:41) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 17.11.2012 19:40) Re: 2 Zeiten erfassen per Mega 128 (von Franz-Peter - 18.11.2012 10:12) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 18.11.2012 14:16) Re: 2 Zeiten erfassen per Mega 128 (von Torsten - 19.11.2012 19:33) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 20.11.2012 18:50) Re: 2 Zeiten erfassen per Mega 128 (von Franz-Peter - 20.11.2012 20:56) Re: 2 Zeiten erfassen per Mega 128 (von Torsten - 21.11.2012 12:59) Re: 2 Zeiten erfassen per Mega 128 (von Franz-Peter - 22.11.2012 17:15) Re: 2 Zeiten erfassen per Mega 128 (von Torsten - 22.11.2012 18:45) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 22.11.2012 23:18) Re: 2 Zeiten erfassen per Mega 128 (von Franz-Peter - 23.11.2012 9:54) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 23.11.2012 15:24) Re: 2 Zeiten erfassen per Mega 128 (von Franz-Peter - 24.11.2012 18:03) Re: 2 Zeiten erfassen per Mega 128 (von Torsten - 24.11.2012 16:47) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 26.11.2012 19:23) Re: 2 Zeiten erfassen per Mega 128 (von Torsten - 27.11.2012 18:45) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 28.11.2012 22:56) Re: 2 Zeiten erfassen per Mega 128 (von Torsten - 30.11.2012 18:44) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 2.12.2012 13:20) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 27.11.2012 21:46) Re: 2 Zeiten erfassen per Mega 128 (von Jürgen A. - 27.11.2012 21:42) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum