Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
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)