Re: 2 Zeiten erfassen per Mega 128 Kategorie: Programmierung Basic (von Franz-Peter - 18.11.2012 10:12) | ||
Als Antwort auf Re: 2 Zeiten erfassen per Mega 128 von Jürgen A. - 17.11.2012 19:40 | ||
| ||
Hallo Jürgen, so ganz habe ich nicht verstanden wie das ganz funktioniert und wie die Lichtschranken angeschlossen sind. Auch verstehe ich nicht, was Du in diesem Zusammenhang mit den Timer-IRQ's machen möchtest. Wenn von Messpunkt A bzw Messpunkt B jeweils immer nur eine der 3 LS aktiv ist, würde ich sie hardwaremä�ig verodern und jeweils auf einen externen IRQ-Eingang legen. Dann löst die LS direkt einen IRQ aus, und Du kannst die Auswertung dazu starten. Alternativ dazu könntest Du sie auch im 10ms-IRQ des Systems pollen. Die IRQ-Routinen selbst sollten immer möglichst kurz sein ( keien Delays oder Ausgaben) und keine (de)aktivierung des IRQ selbst enthalten (s. Kommentar unten). Gru� Franz-Peter > Hallo Franz-Peter oder gern auch jemand anderes... > > ich habe folgendes Problem ;) > > Ich möchte/muss insgesamt 6 Lichtschranken auswerten, wobei je 3 zu einer Gruppe Gehören. > Anders Ausgedrückt, 2 Signalauslöser mit je 3 Lichtschranken in Ihrer "Umlaufbahn" > > Es können also maximal 2 Sensoren gleichzeitig ausgelöst werden, je Signalausgeber wiederum nur einer. > > MesspunktA.1 MesspunktA.2 MesspunktA.3 > und > MesspunktB.1 MesspunktB.2 MesspunktB.3 > > Ich möchte das gern über 2 Einzelne Interrupts lösen. > > Frage 1. Welche Interrupts (Timer) kann ich verwenden, blicke da irgendwie nicht so recht druch. > > Frage 2. Ist es Sinnvoll den IRQ am Anfang der IRQ-Funktion zu Deaktivieren und zum Ende wieder auf > sich selbst zu legen, um zum Beispiel den wiederholten Aufruf per IRQ zu vermeiden solange die Funktion > nicht verlassen wurde? > > Schematischer Quelltext: > IRQ_A(Void) > { > Irq_SetVect(INT_TIM2COMP,0); 'Abschalten des IRQ's ??? Ist das richtig so??? >>>nein, IRQ kann sich nicht selbst unterbrechen > int irqcnt_a; > irqcnt_a=Irq_GetCount(INT_TIM2COMP); >>> das muss ganz am Ende stehen (nach MESSENSOREN PR�FEN) >>> �ber den Wert kannst Du gegebenenfalls festtellen, ob der HW-IRQ während der Abarbeitung >>> erneut ausgelöst hat. > > MESSENSOREN PR�FEN und den IRQ wieder Aktivieren > > Irq_SetVect(INT_TIM2COMP,IRQA); >>> s.o. > } > > IRQ_B(Void) > { > Irq_SetVect(INT_TIM3CMPA ,0); 'Abschalten des IRQ's ??? Ist das richtig so??? > int irqcnt_b; > irqcnt_b=Irq_GetCount(INT_TIM3CMPA); > > MESSENSOREN PR�FEN und den IRQ wieder Aktivieren > > Irq_SetVect(INT_TIM3CMPA,IRQB); > } > > > IRQ_INIT(Void) > { > Irq_SetVect(INT_TIM2COMP,IRQA); > Irq_SetVect(INT_TIM3CMPA,IRQB); > } > > Oder kann ich den INT_TIM3CMPA nicht dafür benutzen. > > Ich blicke da irgendwie nicht wirklich durch mit den Timern, Sorry! > > Danke > > Gru� Jürgen > > > > > > > Hallo Franz-Peter, > > > > > > bei der verwendung von Lichtschranken/Gabel/Brücke/Reflex.... mu� ich mir erst noch eine saubere > > > Schaltung heraussuchen, da meine Impulse ca. 20ms Aktiv sind denke ich das ich eine Impulsverlängerung > > > zusätzlich verbauen mu�, aber auch bei der Auswahl der Sensoren bin ich mir noch nicht so sicher. > > > ich tendiere für meine Zwecke zu CNY37 bzw. CNY36, wei� nur noch nicht wie ich die am besten drum rum > > > Beschalten werde/muss/kann. > > > Falls du Infos für mich zur Verfügung hast wäre ich dir sehr dankbar. > > > > > > Gru� Jürgen > > > > > > > > Hallo Jürgen, > > das Problem mit den kurzen Impulsen habe ich nicht. Meine Lichtschranke besteht aus dem Fototransistor > > im Gleis und einer externen Lichtquelle. D.h. der ganze Zug unterbricht die Lichtschranke, solange er > > im Gleis steht. Ich habe mir nur eine Abfallverzögerung eingebaut, damit bei kurzen Impulsen (z.B. > > durch die Kupplungsbügel) keine mehrfachen Flanken entstehen. > > Gru� > > Franz-Peter | ||
Antwort schreiben Antworten: 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