Hat irgend jemand von euch einen vorteilhaften Rahmen für eine Interruptsteuerung mit AD-Wandlung und Timer? Ich will meine Ereignisse mit Interrupts ausführen lassen. Wie kann man eine Anbindung der Interrupts zum Hauptprogramm herstellen? Danke für jeden Tipp.
:
Gesperrt durch Admin
Die Interruptroutinen rufen im Normalfall nur weitere Routinen auf. Was diese eigenen Routinen machen bleibt dir überlassen. Ich versteh aber ehrlich gesagt auch nicht so ganz worauf du hinaus willst.
:
Wiederhergestellt durch Admin
>Ich versteh aber ehrlich gesagt auch nicht so ganz worauf du hinaus willst.
Da bist Du nicht alleine...
:
Wiederhergestellt durch Admin
>Wie kann man eine Anbindung der Interrupts zum Hauptprogramm herstellen?
Der Timerinterrupt setzt eine globale Variable, die im Hauptprogramm
laufend abgefragt wird (Polling).
Ist diese Variable gesetzt, werden die gewünschten Funktionen aufgerufen
und die Variable gelöscht.
:
Wiederhergestellt durch Admin
Ich muss mich selber korrigieren, evtl. fällt es euch dann einfacher es
zu verstehen.
Ich suche einen vorteilhaften Rahmen für eine Interruptsteuerung mit
AD-Wandlung und Timer.
>Ich will eben nicht alles mit Interrupts ausführen.
:
Wiederhergestellt durch Admin
Und wo ist nun das Problem ? 1. Welchen µC willst Du nehmen ? 2. Was ist Deine Aufgabenstellung ? 3. Soll der ADC z.B. durch den Timer-IRQ gepollt werden ? 4. Willst Du einen Timestamp auf einen analogen Wert haben ? 5. Hast Du einen hübschen Hintern ? usw. usf. ...
:
Wiederhergestellt durch Admin
majortom schrieb: > Ich muss mich selber korrigieren, evtl. fällt es euch dann einfacher es > zu verstehen. > Ich suche einen vorteilhaften Rahmen für eine Interruptsteuerung mit > AD-Wandlung und Timer. >>Ich will eben nicht alles mit Interrupts ausführen. > > > > Beitrag melden Bearbeiten Löschen Hört sich nach Hausaufgabe an.
:
Wiederhergestellt durch Admin
Was heisst: "Vorteilhaft"? Welche Vorteile soll's denn haben? Im allgemeinen verwendet man nur Schemata die vor allem die notwendigen Vorteile haben. Insofern ist dieses Adjektiv allein völlig nutzlos um uns einen Hinweis zu geben, was Du willst.
:
Wiederhergestellt durch Admin
Ich versteh deine Problematik. Ich kann dir gerne Hilfestellung geben, indem ich dir demnächst ein Konzept von mir online stelle, wie du es am besten machen kannst.
:
Wiederhergestellt durch Admin
JamesWhat schrieb: > Ich versteh deine Problematik. Dann lass uns teilhaben, bitte, bitte, bitte, b...
:
Wiederhergestellt durch Admin
@JamesWhat: Respekt, dann bring mal Licht ins Dunkle
:
Wiederhergestellt durch Admin
Hallo JamesWhat schön, dass wenigstens du mich hier verstehst. Ich bin dir sehr dankbar, dass du mir einen guten Tipp geben kannst. Übrigens verwende ich von NXP den LPC 936. Dank dir
:
Wiederhergestellt durch Admin
majortom schrieb: > Übrigens verwende ich von NXP den LPC 936. Verrate uns das doch nicht schon so früh. Richtiger Spielverderber verraten das schon im 1. Post oder im Topic. Und sie verraten auch noch mehr nötige Angaben. Z.B. möchtest Du das in ADA oder in Fortran programmieren? Wenn sie ganz frech sind, schildern sie sogar eigenen Gedankengänge und Lösungsansätze. Und die Aufgabe, die sie lösen wollen. Aber dann sind helfende Antworten quasi nicht mehr zu vermeiden. Peter
:
Wiederhergestellt durch Admin
> Ich suche einen vorteilhaften Rahmen für eine > Interruptsteuerung mit AD-Wandlung und Timer. Eventuell hilft es ja auch, wenn du uns einen deiner Meinung nach nicht-vorteilhaften Rahmen zeigst und ein paar Worte darüber verlierst, was du daran nicht so toll findest. Zumindest bei mir würde das extrem das Vertrauen wieder herstellen, dass es dir darum geht Programmstrategien zu erötern und du nicht einfach nur einen Blöden suchst, der dir deine Arbeit macht. Egal ob vorteilhaft oder nicht. Denn oft genug ist die Frage nach 'der besten Möglichkeit' eine Umschreibung für 'bitte macht das für mich, weil ich selber keinen blassen habe - ich such gar nicht nach der Besten; ich such irgendwas - egal was - Hauptsache ich kann was abgeben'
:
Wiederhergestellt durch Admin
Ist doch trivial Bitte sehr:
1 | TimerInt: |
2 | incrementTimerTick; |
3 | ende |
4 | |
5 | Hauptprogramm: |
6 | InitialisiereDenScheiss(); |
7 | while forever { |
8 | if (istsSchonwiederSoweit1()) { |
9 | mach den Kram1() |
10 | } |
11 | if (istsSchonwiederSoweit2()) { |
12 | mach den Kram2() |
13 | } |
14 | |
15 | ... |
16 | |
17 | if (istsSchonwiederSoweitX()) { |
18 | mach den KramX() |
19 | } |
20 | } |
Als Übung darfst du das Konzept um den A/D Wandler Interrupt erweitern
:
Wiederhergestellt durch Admin
Majortom ich mach dir folgendes Angebot. Meld dich hier fest an, dann kann ich dir einen Beispielcode zukommen lassen, weil auf dieses Niveau muss ich mich wirlich nicht begeben. Es ist hier wirklich erschreckend welcher Umgang hier herrscht und was für ein anonymes arrogantes Pack seinen Senf hier abgeben muss.
:
Wiederhergestellt durch Admin
Michael Bodden schrieb: > Meld dich hier fest an, dann kann ich dir einen Beispielcode zukommen > lassen Bitte zeige Dein Beispiele hier und öffentlich. Vielleicht kann man dann auf die Frage zurück schließen. Aber der Kontakt zu Major Tom ist abgerissen. Die Zensur steht fest. ;-P
:
Wiederhergestellt durch Admin
Nochmals für alle hier bei denen es noch nicht klick gemacht hat, was ich eigentlich wollte. Ich suche eine sinvolle Ablaufsteuerung, damit keine Timingprobleme entstehen, weil ich unterschiedlich Zeiten wie 100ms, usw. einhalten muss. Durch 3 Interrupts werden Analoge Spannungen durch die AD Wandler (Mulitplexverfahren) ausgelesen, die dann ständig mit weiteren Informationen an die UART mit Hilfe eines Vektors übergeben werden. Damit kann dann in kürzester Zeit 9 Bytes gesendet werden, usw. Ich suche sozusagen eine Timerablaufsteuerung mit unterschiedlichen Zeiten, bei denen dann bei den entsprechenden Zeiten Unterprogramme aufgerufen werden, die den AD-Wandler, Eingabe per Inkremtalgeber, Daten an die UART, usw. steuern. Jetzt sollte es eigentlich jeder hier verstanden haben. Ich suche keine Lösung, sondern ein Konzept um meine Timings einzuhalten, damit keine bösen Überraschungen auftauchen.
:
Wiederhergestellt durch Admin
MajorTom schrieb: > Nochmals für alle hier bei denen es noch nicht klick gemacht hat, was > ich eigentlich wollte. > > Ich suche eine sinvolle Ablaufsteuerung, damit keine Timingprobleme > entstehen, weil ich unterschiedlich Zeiten wie 100ms, usw. einhalten > muss. Wie genau müssen die 100ms sein? > Ich suche keine Lösung, sondern ein Konzept um meine Timings > einzuhalten, damit keine bösen Überraschungen auftauchen. Und die Grundidee von Udo, eigentlich die Standardlösung, ist immer noch die, die im Rennen ist. 100 Millisekunden. Da lacht doch dein µC drüber. Für den ist das eine halbe Ewigkeit, in der er noch eine Partie Backgammon spielt, ein Nickerchen macht, Kreuzworträtsel löst und dann sieht er sich an, ob nicht irgendeine Aufgabe anfällt, die wieder mal drann wäre. Die ganze Sache ist wirklich nicht schwer und ja, das ist eine Standardanwendung für Timer. Und das Grundrezept ist immer das gleiche: Eine Hauptschleife die Reihum überprüft, ob es Dinge zu tun gibt und wenn ja diese ausführt, basierend auf Flags, die ihr vom Timer zugespielt werden, der die Zeitbasis zur Verfügung stellt. Etwas vornehmer ausgedrückt und etwas mehr verallgemeinert landet man bei einer Statemachine, bzw. einer Kombination aus mehreren derartigen Statemachinen, aber das Grundprinzip ist da wie dort eigentlich dasselbe: keine Wartezeiten, keine Delays, länger dauernde Vorgänge in mehrere Arbeitsabschnitte aufbrechen, Timergetriebene Softwaretimer.
:
Wiederhergestellt durch Admin
MajorTom schrieb: > Ich suche sozusagen eine Timerablaufsteuerung mit unterschiedlichen > Zeiten, Ermittle den GGT aller Zeiten, setze dafür einen Timerinterrupt auf und darin je einen Zähler pro Zeitdauer. Schnelle Sachen macht man direkt im Interrupt. Und die 9 Bytes schreibst Du in einen FIFO, den dann der UART-Interrupt sendet. Peter
:
Wiederhergestellt durch Admin
MajorTom schrieb: > Nochmals für alle hier bei denen es noch nicht klick gemacht hat, was > ich eigentlich wollte. Hmm, kann es sein, daß es bei dir nicht klick gemacht hat? Michael Bodden schrieb: > Es > ist hier wirklich erschreckend welcher Umgang hier herrscht und was für > ein anonymes arrogantes Pack seinen Senf hier abgeben muss. Kannst du das präzisieren, oder fehlt dir dafür der Arsch in der Hose? Ich bin gespannt ob dein Code genauso qualitativ hochwertig ist wie dein Beitrag. MajorTom schrieb: > Ich suche eine sinvolle Ablaufsteuerung, damit keine Timingprobleme > entstehen, weil ich unterschiedlich Zeiten wie 100ms, usw. einhalten > muss. Was gefällt dir an meinem -zugegeben ziemlich groben - Beispiel, das durch zusätzliche Tipps von Karl Heinz und Peter angereichert ist, nicht? Was gefällt dir am Link von Falk nicht? Das sollte reichen um zumindest eine Ahnung zu bekommen, einen eigenen Ansatz zu haben und präzisere Fragen zu stellen. Aber majortom schrieb: > Ich will ist natürlich einfacher.
:
Wiederhergestellt durch Admin
Udo Schmitt schrieb: > Michael Bodden schrieb: >> Es >> ist hier wirklich erschreckend welcher Umgang hier herrscht und was für >> ein anonymes arrogantes Pack seinen Senf hier abgeben muss. > Kannst du das präzisieren, oder fehlt dir dafür der Arsch in der Hose? > Ich bin gespannt ob dein Code genauso qualitativ hochwertig ist wie dein > Beitrag. Rechne besser nicht damit. Interessant ist ja auch, dass Major Tom James Watt und Michael Bodden alle dieselbe IP-Adresse haben. Ein Schelm wer böses dabei denkt :-)
:
Wiederhergestellt durch Admin
Karl Heinz Buchegger schrieb: > Interessant ist ja auch, dass > Major Tom > James Watt und > Michael Bodden > > alle dieselbe IP-Adresse haben. Ah ja. Kann ich das auch sehen, oder nur die Moderatoren?
:
Wiederhergestellt durch Admin
Nur die Mods. Ist auch besser so . . .
:
Wiederhergestellt durch Admin