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

Re: Performanceprobleme (wahrscheinlich I²C-Bus) Kategorie: Programmierung C (von Daniel - 11.06.2013 10:28)
Als Antwort auf Re: Performanceprobleme (wahrscheinlich I²C-Bus) von Franz-Peter - 25.05.2013 17:07

> >
> > > Der Grund weswegen ich denke, dass es Probleme macht ist, dass ein Interrupt immer das Hauptprgramm anhält und
> > > somit würde es Probleme machen während ein Signal erzeugt wird ein anderes zu erzeugen und zeitgleich auch noch
> > > die Abfrage der Potis machen mit denen ich die Signalzeiten berechnen will. Oder habe ich einen kompletten
> > > Denkfehler mit den Interupts?
> >
> > Hallo Daniel,
> >
> > lass mal die Interrupte völlig beiseite. Du brauchst
> > sie nähmlich gar nicht. Für die Erzeugung von Signalen
> > sind die Timer zuständig. Diese haben entsprechende
> > Ausgänge an denen das Signal abgegriffen werden kann.
> > Das Hauptproblem ist die oben erwähnte Phasenverschiebung
> > zweier Timer zueinander. Am besten du beschreibst uns
> > mal hier fĂĽr was du die Signale brauchst. Vielleicht
> > gib es da noch eine andere Lösung.
> >
> > GruĂ? Torsten
>
> Hallo Torsten, Hallo Daniel
> Daniel hat ja am Anfang beschrieben, was er fĂĽr Signale braucht:
> 2x 10ms-500ms in 1ms Schritten. Wenn er das nur ĂĽber Timer machen will, braucht er dafĂĽr auf jeden
> Fall 16-Bit Timer. Mit dem 8-Bit Timer lassen sich so langsame Signale nicht direkt erzeugen.
> Der eingesetzte Mega32 hat aber nur einen 16 Bit Timer. Grundsätzlich lassen sich damit zwar
> 2 PWM Signale bei identischer Frequenz fĂĽr beide Signale erzeugen. Die Phasenverschiebung ist dann
> aber nicht frei wählbar.
> Ich denke, er wird ohne Interrupts nicht auskommen. Es muss aber nicht unbedingt ein fester 1ms
> IRQ sein, der den Interpreter doch stark belastet.
> Ich könnte mir vostellen, zu berechnen, wann der nächste Flankenwechsel ansteht, und dann mit
> Timer 1 zu diesem Zeitpunkt einen IRQ zu erzeugen. In der IRQ Routine wird dann die Flanke (oder
> beide, wenn 2 gleichzeitig erforderlich sind) erzeugt, und berechnet wann die nächste Flanke
> ansteht und der Timer wieder entsprechend gesetzt.
> Nachteil: Da ein fester Grundtakt fehlt, schwankt die Frequenz ein wenig. Das ist aber bei seiner
> jetztigen Lösung nach seiner Aussage auch so, und nicht kritisch.
> Alles andere (Potis lesen, Werte anzeigen) wird in der Hauptschleife gemacht.
> GruĂ?, Franz-Peter


Danke Peter und Thorsten fĂĽr die Antworten.

Schwankungen bei der Frequenz sind schon Problematisch habe ich jetzt aber hinbekommen indem ich den
Potiwert mit einem Schalter eingefrohren habe. Die Probleme scheinen von der I²C Abfrage zu kommen.
aktuell läuft es jetzt ziemlich stabil mit dem nachteil, dass ich nur in 10ms schritten einstellen kann.
Werde jetzt jedoch die ersten versuche mit diesem System so fahren um zu sehen ob es vielleicht doch ausreichend
sein wird.


    Antwort schreiben


Antworten:

Re: Performanceprobleme (wahrscheinlich I²C-Bus) (von Torsten - 15.06.2013 6:12)