Superschnelle parallele Abfrage von Datenpins? (Dartboard)

combie:
Das glaube ich dir nicht.
Scheint mir eher so eine Art Durchhalteparole zu sein.

Ob du es glaubst, oder auch nicht, Datenblätter kann man auch von vorn bis hinten durchlesen.
JEDER muss das, wenn er nicht dumm im Nebel stochern will.

Bespiele führen oft in die Irre!
Sie zeigen nur WAS jemand getan hat, nicht WARUM das so getan wurde.

Das WARUM wird dann meist/gerne mit Fantasie und Irrtümern aufgefüllt.
Und diese Irrationalitäten stehen einem dann jahrelang im Wege rum.

Danke für deinen Hinweis. Ich bleibe trotzdem bei meiner Meinung bezüglich der Datenblätter. Mein bisheriger Weg durch das Programmierleben hat mir gezeigt, dass ich da nicht grundsätzlich falsch liege. Alle meine bisherigen Arduino und andere Projekte der letzten 45 Jahre sind durch Lesen, Verstehen und Umbauen von Beispielen entstanden. Und wenn ich auf Hardwareebene direkt was von einem Chip will, dann schaue ich in passende Datenblätter. Hier betrachte ich mein Arduinoboard als mein Arbeitsfeld. Was da für Prozessor werkelt interessiert mich relativ wenig. Wie beim Autofahren. Ich weiß, dass es ABS und ESB und und und hat, verstehe, was die machen und welche Einflüsse da sind. Wie die intern funktionieren, interessiert mich als normaler Fahrer herzlich wenig.
Und bezogen auf den Arduino interessiert mich die da Referenz zu dem Arduino-Board und seine vielen Möglichkeiten. Und wie man sie anwendet. Da helfen mir dokumentierte Beispiele mehr als ein Datenblatt, von dem ich die Hälfte nicht verstehe.

OK, kann sein, dass du damit bisher durchgekommen bist.
Bei mir allerdings nicht.

Ich habe mir nicht ohne Grund "DokuVorLeseVerweigerer" als Zweitnamen zugelegt (Siehe unter meinem Profilbild).

Grundsätzlich ist das Arduino-System für den 'normalen' Anwender schon genau so konzipiert. HW-Details sollen da ganz bewusst verdeckt werden.

Nur wer Libraries schreiben und/oder Prozessorabhängigkeiten verdecken oder ganz allgemein tiefer einsteigen will, braucht die Datenblätter und muss evtl. auch mal in des Sourcecode des core schauen.

Allerdings bedeutet das dann auch, dass man mit den 'Standardmöglichkeiten' des Arduino ( und der Libs ) auskommen muss. Wobei man da auch schon ganz schön weit kommt :wink: . Reaktionszeiten im µs-Bereich gehöen aber sicher nicht zu den 'Standardmöglichkeiten' des Arduino.

MicroBahner:
Dann ist der von agmue vorgeschlagene Baustein doch die perfekte Lösung für dich. Und das Timing wird wesentlich entspannter.

Wenn es geht, möchte ich ohne externe Hardware auskommen. Werde mir aber trotzdem mal ein paar Beispiele mit Erklärungen suchen.
Danke
Und nun bin ich weg für heute. Danke für die vielen Antworten

Ich glaube auch daß Du Dich in einen Bereich vorwagen willst wo die Normale Arduino-Programmierung versagt.

Mein Schwerpunkt liegt in VB/VBA/Assembler.

Ich frage mich wie Du Assembler programmieren willst wenn Du das Datenblatt nicht lesen willst und nicht die Hardware genau kennen willst für die Du Assembler programmierst.
Grüße uwe

lupus1952:
Und wenn ich auf Hardwareebene direkt was von einem Chip will, dann schaue ich in passende Datenblätter. Hier betrachte ich mein Arduinoboard als mein Arbeitsfeld. Was da für Prozessor werkelt interessiert mich relativ wenig.

Das ist ziemlich sinnfrei. Das Arduino Board ist nicht viel mehr als ein Adapter um mit dem Prozessor einfacher umzugehen. Allerdings nur hardware-seitig. Man kann z.B. leichter Peripherie mit dem Prozessor verbinden. Das Board hat einige elektrische Eigenschaften die man wissen sollte. Aber für die Software ist das weniger relevant.

Für die Programmierung allerdings ist der Prozessor essentiell. Die Arduino API abstrahiert und vereinheitlicht vieles unabhängig vom Prozessor-Typ. Bei einfachen Programmen kommt man i.d.R. darum herum Details zu wissen. Es ist auch klar für Anfänger konzipiert. Aber wenn es nur etwas komplizierter wird bekommt man es immer wieder mal mit den Eigenheiten der jeweiligen Prozessoren zu tun. Die größeren 32-Bitter verhalten sich z.B. bei manchen Sachen ganz anders wie die 8-Bitter und das merkt man auch in C++. Das liegt zum Teil an der völlig anderen Prozessorarchitektur, aber auch an den Funktionen die auf dem Chip integriert sind.
Und wenn so tief wie hier drin bist (direkte Port-Adressierung und Interrupts, weil die Arduino API zu langsam ist) geht es nicht ohne zu lernen wie der Prozessor eigentlich aufgebaut ist und wie er arbeitet. Nicht im Ganzen. Man muss nicht das komplette Datenblatt verinnerlichen. Aber den Teil mit dem man es gerade zu tun hat.

Oder nimm das hier:

PCICR |= (1 << PCIE2);

Das hat relativ wenig mit C/C++ zu tun. Die Logik-Operationen sind auch nicht anders als wie man das in Assembler macht. Hier ist es wichtiger zu verstehen wie die Register aufgebaut sind. PCICR ist der Register-Name und PCIE2 ist die Bit-Nummer. Wenn man nun die Zahl 1 um die Bit-Nummer (von 0-7) nach links schiebt erzeugt man sich eine Bitmaske um das entsprechende Bit im Register zu setzen.

Die ganzen Register und was die Bits genau machen sind im Datenblatt erklärt

uwefed:
Ich glaube auch daß Du Dich in einen Bereich vorwagen willst wo die Normale Arduino-Programmierung versagt.
Ich frage mich wie Du Assembler programmieren willst wenn Du das Datenblatt nicht lesen willst und nicht die Hardware genau kennen willst für die Du Assembler programmierst.
Grüße uwe

Warum ziehen sich die Leute hier an meiner Äußerung bezüglich Assembler hoch? Ich nutzte das zu Zeiten, wo es noch keine modernen Boards wie Arduino gab, um spezielle Sachen zu lösen. Man also darauf angewiesen war sich für jede Popelaufgabe auf Bitebene und sonstige Level zu begeben.
Es muss mir auch niemand helfen. Ich freue mich aber auch für konkrete Tipp oder gar "Codeschnipsel" Was ich nicht mag, sind lange Offtopic-Geschreibsel die nur dazu sich selbst als Profi in den Vordergrund zu stellen und den anderen Doof zu machen bzw. zu belehren. Das ist leider so eine Eigenschaft deutscher Foren. Lieber 20 Zeilen Belehrung als 5 Zeilen echte Hilfe.
Sorry - das musste jetzt raus, nachdem mir schon beim ersten Posting die Stimmung und Lust auf weiteres Lesen verdorben wurde.
Habe gestern Nacht lange in englischsprachigen Foren gestöbert. Kurz und knackig gibt es da auf viele Fragen kurze aber passende Antworten. Statt endloser Belehrungen etc. Habe da also einiges gelernt und verstanden.
Ich denke, dass ich mit dem neuen gut erklärten Wissen um PCINT etc. und entsprechender Beispiele nun alleine weiter komme. Auch ohne externe Hardware
Und da ich heute mal was anderes arbeiten muss bin ich auch schon wieder weg.

Schönen Tag noch

Sorry - das musste jetzt raus, nachdem mir schon beim ersten Posting die Stimmung und Lust auf weiteres Lesen verdorben wurde.

Was stört dich am ersten Posting?

Die zwei klaren Antworten auf deine Fragen?
Oder der Hinweis, dass man genau die zugehörigen Erklärungen im Datenblatt findet?

Hallo,

Warum ziehen sich die Leute hier an meiner Äußerung bezüglich Assembler hoch? Ich nutzte das zu Zeiten, wo es noch keine modernen Boards wie Arduino gab, um spezielle Sachen zu lösen. Man also darauf angewiesen war sich für jede Popelaufgabe auf Bitebene und sonstige Level zu begeben.

Dafür gibts eine ganz einfache Erklärung. Du bist mit dem Text aufgeschlagen.

Mit dem Arduino UNO beschäftige ich mich schon eine Weile auf etwas fortgeschrittener Anfängerebene. Bisher hauptsächlich so Kleinigkeiten wie irgendwelche Signale oder Messwerte abfragen und weiter leiten und/oder Schaltfunktionen ausführen. Also nichts Besonderes. Bin kein Programmieranfänger. Allerdings fehlt mit bezüglich C/C++ und Arduino die Erfahrung in tieferer Ebene. Mein Schwerpunkt liegt in VB/VBA/Assembler.

Nochmal deutlicher.

Bin kein Programmieranfänger. Allerdings fehlt mit bezüglich C/C++ und Arduino die Erfahrung in tieferer Ebene. Mein Schwerpunkt liegt in VB/VBA/Assembler.

Was sagt das einem Leser des Textes?
Antwort: Er kennt sich sehr gut in VB/VBA/Assembler aus.
Mehr wissen wir von dir nicht. Wir haben nur diese Aussage vor uns. Damit muss sich nun jeder ein Bild von dir machen.

Und damit sind wir auch schon bei der Diskrepanz die damit immer mitschwimmt. Ich kenne keinen Assemblerprogrammierer der Probleme mit Manual lesen hat. Der fängt damit noch vor allen anderen an. Hier und da Verständnisprobleme die jeder hat ausgenommen. Und diese Diskrepanz verhindert vernünftige Antworten, weil man sich immer fragt, na wenn der Assembler kann, dann muss der sich doch auskennen, warum fragt er jetzt und warum programmiert er den Controller dann nicht gleich in Assembler. Noch dazu weil es Zeit kritisch ist. Fragen über Fragen. Dein Einstiegstext hat assoziiert das du es kannst. Er hat nicht wiedergegeben das du bisher immer nur von Beispielen gelebt hast. Nur dann kann man nicht schreiben das sein Schwerpunkt darauf liegt.

Und was du in anderen Foren gefunden hast sind ja Antworten auf Fragen anderer Leute. Mit deinem Einstiegstext hier wäre das dort ähnlich verlaufen. Möchte dir nur aufzeigen warum der Thread so verläuft wie er verläuft.

Eines weiß ich jedoch. Wenn sich hier im Forum jemand sichtbar bemüht und vorallendingen mitmacht, dann wird er von allen Seiten solange "beackert" bis er es verstanden hat. Da wird jede Codezeile auseinander genommen wenn es sein muss. Wenn jedoch jemand kommt und mit VB/VBA/Assembler prahlt und es sich dann herausstellt das er von allen eigentlich nichts kann, weil er sich all die Jahre mehr schlecht als recht durchgewurschtelt hat, ja was denkst du denn wie das die Stimmung hebt?

Kurzum. Wenn du noch Fragen haben solltest, dann zeige deinen Code und schreibe was nicht funktioniert und was wie funktionieren soll.

Jetzt lasse das alle sacken, hole mehrfach Luft, dann gehts hoffentlich entspannter weiter.

Doc_Arduino:
Möchte dir nur aufzeigen warum der Thread so verläuft wie er verläuft.

Gut gemacht!

Doc_Arduino:
Jetzt lasse das alle sacken, hole mehrfach Luft, dann gehts hoffentlich entspannter weiter.

Eigentlich ein interessantes Thema, wäre daher schön, wenn es entspannt weiterginge.

Doc_Arduino:

Jetzt lasse das alle sacken, hole mehrfach Luft, dann gehts hoffentlich entspannter weiter.

Danke großer Meister. Sorry, dass ich eure Anforderungen nicht erfülle. Ich werde euch bezüglich meiner aktuellen Problematik nicht weiter belästigen.
BTW: Als Berufselektroniker, der auch einen großen Teil seiner Zeit in der Entwicklung verbracht hat, kann ich sehr wohl Datenblätter lesen und verstehen. Aber darauf gehe ich nicht weiter ein. Es interessiert mich nicht! Ich will mit dem arbeiten, was mein kleiner UNO kann und keine großen Hardwarebasteleien machen oder "Chips" studieren.
Ich habe Assembler mit dem Octal-Debugger(!) am 8080/Z80 etc. Testprogramme programmiert. Später anfangs der 80er mit MASM am PC z.B. einen der ersten freien Maustreiber für Chinamäuse, die mein Partner importiert hat und für die es anfangs keine Treiber gab, weil Microsoft seine Maustreiber für Nutzung durch Fremdmäuse gesperrt hatte. Des Weiteren diverse Spezialansteuerungen für Industriemodule unter DOS. Aber das ist lange her. Und ich werde es nie wieder erwähnen. Weil es ja manchen Leuten für's eigene Ego wichtiger ist jetzt daran rum zu knabbern, statt mal einem Anfänger auf einem speziellen Gebiet zu einer speziellen Frage konkret zu helfen.
Und dass ich von C++ keine besondere Ahnung habe, habe ich auch erwähnt.
Aber egal - ich habe eine hervorragende englische Doku bzw. Tutorial zum Thema gefunden. Genau genommen mehrere. Und die haben alle Fragen beantwortet oder genau zum Ziel geführt. Leider fast alles in englischsprachigen Foren. Aber egal. Googletranslate hilft da notfalls.
Der Ton in englischen Foren ist übrigens deutlich freundlicher oder kumpelhaft und nicht so belehrerisch und besserwissend wie in Deutschland. Da wird mehr praktisch geholfen, als sich über Nebensächlichkeiten hochzuziehen und eigentlich nichts zum Thema beizutragen.
Ok - hier hat mir der Tipp "PCINT" als Ansatz geholfen um damit weiterzusuchen. Ich war zu sehr auf die 2 Hardwareinterrupts fixiert. Bisher hatte ich nie Interrupts bei meinen kleinen Schaltungen benötigt. Und 2 gute Hardwaretipps. Die ich aber wohl nicht umsetzen werde. Ich denke, dass ich mit dem PCINT und dem Drumherum auskommen werde.
Ich wünsche allen ein schönes Wochenende. Gesund bleiben

lupus1952:
Warum ziehen sich die Leute hier an meiner Äußerung bezüglich Assembler hoch? Ich nutzte das zu Zeiten, wo es noch keine modernen Boards wie Arduino gab, um spezielle Sachen zu lösen. Man also darauf angewiesen war sich für jede Popelaufgabe auf Bitebene und sonstige Level zu begeben.

Das musst du aber auch unter Umständen bei den Arduino Boards machen. Die Abstrahierung in eine allgemeine und einfach verständliche API ist sehr schön. Sie reicht für viele Anwendungen. Das geht aber sehr deutlich auf Kosten der Geschwindigkeit und Funktionalität. Wenn man also bestimmte sehr spezielle Anforderungen hat und/oder diese sehr schnell geschehen müssen muss man tiefer einsteigen. Und dann dann ist man wieder von der Hardware abhängig. Das gibt es bei vielen Dingen wie schnelleren Pin-Zugriff, schnelleren ADC, besondere Timer-Anwendungen, diverse Dinge mit PWM, etc.

Es gibt natürlich Seiten die das erklären. Die sind aber auch zum Teil praktisch direkte Auszüge aus den Datenblättern. z.B.:
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Zähler_des_AVR

Es funzt! Alle Dart-Treffer werden perfekt angesagt. (Arduino UNO R3) mit DFPlayer Soundmodul

Der Lautsprecher in der Mitte ist nur testhalber so.

Danke nochmal an die helfenden Tipps. Ich musste viel lernen. Aber es hat sich gelohnt.

lupus1952:
Ich musste viel lernen.

Hallo? Polizei?
Mir wurde meine Dartscheibe geklaut.

Modell SQUARE PRO DART 200

Wie Seriennummer? Das Teil ist schon ein paar Tage alt - aber Moment...
Ich hab sie: M070311 (xx)

Im Übrigen ist es ganz schlechter Stil, wenn die Bilder die Du zeigen möchtest extern lagerst - Sie sind irgendwann weg und dann weiss kein Mensch mehr, was Du erzählen wolltest.

Und vielleicht beim nächsten Mal nicht ganz so aggro.
Es ist nunmal wie es ist. Jeder hat seine Stärken und/oder seine Schwächen.
Niemand kann in Dich, Deine Gedanken, Dein Wissen, Dein ... was auch immer rein sehen.
Und nein, da hilft auch nicht, "ich habe xx + yy Jahre irgendwas gemacht"

Siehe Dein nicht perfektes Photo-Grafik. - nu gut...

PS: Und nur als Hinweis: Deine Website benutzt kein https. Zertifikate gibt es kostenlos.
Zudem benutzt Du Drittseiten fürs Tracking ohne jegliche Er- oder Aufklärung - zumindest habe ich keine gefunden.

Kann man machen. Solltest drüber nachdenken.

Womit hiermit meine abneigende Einstellung externe Quellen einzubinden weiter wächst.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.