Hallo Leute, ich möchte einen Mikrocontroller nehmen und ihn zu einem AD-Wandler programmieren. Wir können mal davon ausgehen, dass ich mir einen ATmega32 kaufen möchte. Dieser Mikrocontroller bzw. AD-Wandler soll die Messwerte eines Sensors über einen USB-Anschluss an einen PC weiterleiten. Ich möchte die Messwerte min. in tabellarischer Form auf meinem PC ansehen können. Ich bin allerdings total neu hinsichtlich der Assemblersprache. Erst gestern habe ich den Entschluss gefasst, diese Sprach zu erlernen. Ich möchte nur soviel können wie für mein Ziel nötig ist, d.h. aus Mikrocontroller einen AD-Wandler machen. Wie lange dauert es eure Meinung nach unter gegebenen Umständen. Ihr könnt bei eurer Schätzung davon ausgehen, dass ich durchschnittlich intelligent bin und Grundkenntnisse in C++ besitze. Am Tag würde ich außerdem ca. 5 Stunden dafür aufbringen. Gerne würde ich so ein Programm einfach runter laden und auf den Mikrocontroller installieren. Noch lieber würde ich selber so ein Programm schreiben, allerdings könnte es aufgrund eines vorgegebenen Zeitlimits sehr eng werden. Also was glaubt ihr, wie lange bräuchte ich für dieses Vorhaben. Ihr könnt auch einfach schreiben, wie lange ihr für so etwas oder ähnliches gebraucht habt. Beste Grüße Berus
Gast
#3281803
Claude Juncker schrieb: > aus > Mikrocontroller einen AD-Wandler machen. der uC hat einen AD-Wandler eingebaut, man muss nicht den uC selbst dazu umwandeln oder wie auch immer du dir das vorgestellt hast. Claude Juncker schrieb: > Grundkenntnisse in C++ besitze warum dann nicht C ? warum Assembler ?
Gast
#3281806
klaus schrieb: > Claude Juncker schrieb: >> Grundkenntnisse in C++ besitze > > warum dann nicht C ? warum Assembler ? Weil er nicht weis, dass sich die uController auch mit C programmieren lassen :) Ohne große Kenntnisse aber mit ein wenig technischem Verständnis, lässt sich das Erfassen eines Messwertes über den INTEGRIERTEN ADC innerhalb eines Tages realisieren (dank der guten Tutorials hier). Schwieriger wird das Transferieren der Daten über den uController an den USB-Port des Computers.
Ich frage nur nach der Dauer zur Programmierung eines Programms für den AD-Wandler des Mikrocontrollers in Assembler. Ich dachte, dass das Programmieren des ADW mittels Assembler leichter ist. Ich glaube es, weil es dafür mehr Lernhilfen bzw. Tutorials im Internet gibt, die mir die Programmierung erleichtern. Wenn ich in C++ programmieren würde, hätte ich keinen Anhaltspunkt wie ich an die Sache herangehen sollte. Berus
Gast
#3281811
Wie gesagt, der ADC ist schon drinne. Den ADC musst du nur einschalten und konfigurieren, dass geschieht durch setzen der entsprechenden Bits in den Registern. Welche Register und welche Bits, steht im Datenblatt. Ein Programm zum runterladen findest du oben auf der Seite unter den Punkt AVR-Tutorial. Problematischer ist der Wunsch die Daten per USB zu übertragen, wenn es auch eine RS232 verbindung sein darf findest du oben ein Beispiel unter dem Stichpunkt Uart. Je nach fähigkeit kannst du mit den erwähnten Stellen im Tutorial dein Wunsch in 1..2 Tagen erfüllen.
Ich habe das Gefühl missverstanden zu sein. Mag sein, das ich mich nur unklar ausgedrückt habe. Also versuche ich mich noch ein Mal zu erklären. Ich will ein Programm schreiben (in Assembler), damit ich das analoge Signal meines Sensors mit Hilfe eines im IC integriertem ADC über einen USP Port auf meinem PC veranschaulichen kann. Mit anderen Worten will ich den IC programmieren. Ihr meint, ich könnte es in C++ machen. Ich wüsste in diesem Fall nicht ganz, wie ich an die Sachen ran gehen sollte. Für Assembler hingegen habe ich viele verständliche Tutorials hier auf dieser Seite als auch woanders gefunden. Beste Grüße Berus
Gast
#3281827
Claude Juncker schrieb: > einen > ATmega32 Claude Juncker schrieb: > Ihr meint, ich könnte es in C++ machen. nein, ich meine nicht das du das in C++ machen kannst, sondern in C (ohne ++). hier: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Analoge_Ein-_und_Ausgabe schon einmal ein Anfang Aber wenn du das unbedingt in Assembler machen willst, hier: http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC
Gast
#3281838
Wenn Du C++ kannst dann bleibe dabei. Lies Dir hier die Tutorials durch und USB gibt's als freie Library. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Und wenn Du dann noch Hilfe brauchst Dein GESAMTES Projekt mit Schaltplan und Programm einstellen.
Na gut, ich versuch es einfach. Danke! Berus
Claude Juncker schrieb: > Ihr meint, ich könnte es in C++ machen. Ich wüsste in diesem Fall nicht > ganz, wie ich an die Sachen ran gehen sollte. Für Assembler hingegen > habe ich viele verständliche Tutorials hier auf dieser Seite als auch > woanders gefunden. Der Hersteller selbst stellt normalerweise reichlich Beispielcode in C - allerdings nicht C++ - zur Verfügung. Wenn man den nicht via Google o.ä. findet, kann man das Ganze eigentlich bleiben lassen. Etwa 85% der Programmierung von Mikrocontroller - Systemen ist Beschaffung und Auswertung von Informationen, Datenblättern usw.
Claude Juncker schrieb: > Ich will ein Programm schreiben (in Assembler), damit ich das analoge > Signal meines Sensors mit Hilfe eines im IC integriertem ADC über einen > USP Port auf meinem PC veranschaulichen kann. > Mit anderen Worten will ich den IC programmieren. > > Ihr meint, ich könnte es in C++ machen. Ich wüsste in diesem Fall nicht > ganz, wie ich an die Sachen ran gehen sollte. Mach's mit C/C++!!! Wenn du nicht weißt, wie du an die Sache rangehen sollst, klemmt es auf jeden Fall woanders. Sag einfach mal, was unklar wäre, dann gibt's ein Beispiel und dann wird das schon. Ich habe zwar meine ersten µC-Programme in Assembler geschrieben, aber das muss man sich nicht wirklich antuen.
Claude Juncker schrieb: > Ich habe das Gefühl missverstanden zu sein. Mag sein, das ich mich nur > unklar ausgedrückt habe. Also versuche ich mich noch ein Mal zu ... > woanders gefunden. > > Beste Grüße > Berus Ich denke mal das es schwierig ist eine Zeitaussage zu treffen. Du wirst nicht nur mit der Programmierung kämpfen. - Du wirst die Programmierumgebung kennen lernen müssen - Du wirst die Eigenschaften des Mikrocontroller kennen lernen müssen - Du wirst lernen müssen wie man das fertige Programm auf den Mikrocontroller überträgt. - Du wirst die Eingenschaften des AD-Wandlers verstehen müssen - Du wirst eine Entwicklungsplatine verstehen müssen, wenn Du nicht selbst bauen willst - Wenn Du selbst bauen möchtest musst Du das Teil erst einmal grundsätzlich ans laufen bekommen Wie schnell lernst Du neue Dinge? Wie groß ist Dein Vorwissen bezüglich Embedded Systemen? Ich könnte Dir jetzt eine Zeitspanne von 2 Tagen bis zu einem Monat nennen ... aber auch das wäre unseriös ... Tipp; such Dir eine möglichst verbreitet, fertige Platine, z.B. Arduino und die Programmierumgebung dazu. Beim Arduino gibt es viele Programmierbeispiele und jede Menge Spezialisten, die Dir weiter helfen. Wenn dann die ersten Programme laufen kannst auf der Umgebung natürlich auch alles in Assembler oder C selbst neu programmieren.
Hi Claude Juncker schrieb: > Ich habe das Gefühl missverstanden zu sein. Mag sein, das ich mich nur > unklar ausgedrückt habe. Also versuche ich mich noch ein Mal zu > erklären. > > Ich will ein Programm schreiben (in Assembler), damit ich das analoge > Signal meines Sensors mit Hilfe eines im IC integriertem ADC über einen > USP Port auf meinem PC veranschaulichen kann. > Mit anderen Worten will ich den IC programmieren. Also, wenn ich dich richtig verstehe, willst du wissen, wie lange du brauchst, um Assembler zu lernen. Die Umsetzung der analogen Signale ist lediglich deine Anwendung. Die Antwort könnte die bestenfalls dein Vater, Mutter oder Geschwister geben, vielleicht noch ein Freund, aber aus einer Distanz heraus einem völlig Fremden seine Auffassungsgabe zu bestätigen, halte ich für unmöglich. Du hast doch das Tutorial schon gefunden. Was hindert dich daran, die Beispiele dort auszuprobieren. Ein RS 232 auf USB Umsetzer ist preiswert und ich selbst setze diese Dinger zum Datentransfer ohne Probleme ein. Auf PC Seite kannst du dich mit C++ austoben und eine Anwendung schreiben, die deine Daten Archiviert. Wie lange du brauchst, um Assembler zu verstehen und umzusetzen, letztlich Erfolg mit deiner Anwendung zu haben, ist allein deiner Intelligenz geschuldet. Vielleicht hast du schon an einem Tag, vielleicht aber auch erst in einem Monat den Durchblick. Ich kann dir ergänzend zum Tutorial einfach mal einen anderen Beitrag in einem anderen Forum nennen, der dir weiter helfen kann. Geh bei AVR-Praxis-Forum in die Rubrik FAQ und lies, was dort unter "Keine Angst vor Assembler" steht. Gruß oldmax
Gast
#3282175
Du kannst in ein Programm, dass Du in C schreibst auch Teile in Assembler schreiben. Das Problem das Du gerade hast ist, dass Dir die Programmierung und Funktion des uC unbekannt sind und Du einfach per Copy & Paste glaubst ein paar Assembler-Schnipsel zusammenstückeln zu können und dann wird es schon irgend wie gehen. Tatsächlich wirst Du zwangsläufig, und in Assembler noch mehr als in C, mit dem Problem konfrontiert werden, wie Du die Bits in den Registern setzt und löscht um den AD-Wandler zu konfigurieren. Um das Studium des mehrere Hundert Seiten dicken Manuals kommst Du nicht herum und zu jeder Funktion findest Du darin auch ein Codebeispiel in C und Assembler. Für den schnellen Erfolg wäre es vielleicht hilfreich, nicht mit der Hardware zu beginnen sondern ein fertiges System z.B. einen Butterfly umzustricken und sich mit den gewonnenen Erkenntnissen das eigene Projekt zu realisieren. Nach den oben gemachten Angaben kann man damit sicherlich binnen 3 bis 5 Tagen zum Ziel kommen.
tex schrieb: > Du kannst in ein Programm, dass Du in C schreibst auch Teile in > Assembler schreiben. Vorher sollte man aber sehr gut überlegen, warum man ein C-Programm unbedingt unleserlicher, unwartbarer und unportabel machen will. Für Anfänger also definitiv kein guter Ratschlag, zumal man erstmal die Speicherverwaltung, Parameterübergabe und Registerbenutzung des jeweiligen Compilers lernen muß, damit nichts abstürzt. Der Compiler übernimmt keinerlei Sicherung für Deinen verbrochenen Assemblercode. tex schrieb: > Um das Studium des mehrere Hundert Seiten dicken Manuals kommst Du nicht > herum Nö. Die AVR Datenblätter sind sehr gut strukturiert, man findet schnell die nötigen Informationen im Kapitel ADC. Und es steht alles in einem einzigen PDF.
Ich danke euch für eure Beiträge. Sie sind sehr inspirierend und hilfreich. Ich weiß nur jetzt nicht mehr, ob ich wirklich mit Assembler programmieren möchte. Ich neige jetzt mehr zu C++. Das einfache C beherrsche ich nicht. Ich melde mich wieder bei euch, wenn ich ne Frage zu meinem Projekt habe. uC ich komme! Berus
Claude Juncker schrieb: > Ich neige jetzt mehr zu C++. Das einfache C beherrsche ich nicht. Solange du die Schlüsselwörter "new", "delete", "try", "catch" und "virtual" erstmal weglässt, hast du keinen grundlegenden Unterschied zwischen beiden. Man kann auch in C++ ein reines C-Programm schreiben ;-), aber selbst, wenn du aufgrund deiner C++-Erfahrung dazu neigst, lieber in Klassen und Methoden statt in Strukturen und Funktionen zu denken, spielt das keine große Rolle. Solange du keine virtuellen Methoden benutzt, hat das Resultat in C++ auch keinerlei Performance-Nachteile gegenüber einem in C. Das Ansprechen des ADC ist ohnehin reine low-level-Arbeit, die kaum Potenzial für eine der Sprachen bietet, irgendwas besser oder schlechter zu machen als die andere. Ob du nun schreibst:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
oder
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
spielt keine große Rolle. Die eigentliche Aufgabe, die du hast ist, die Kommunikation der so erhaltenen Werte zu deinem PC zu organisieren.
Gast
#3282480
Wenn du einen FT232 (o.ä.) verwendest, dann bekommst du die Kommunikation zum PC mittels USB auch schnell hin. Ist ja dann wie eine serielle Schnittstelle... Grüße,
Für dich ist ein Arduino nebst IDE wie geschaffen. Gruss Robert
Gast
#3282492
Claude Juncker schrieb: > Ich neige jetzt mehr zu C++. Wenn das das Ergebnis der Ratschläge in diesem Forum ist, dann ist etwas mächtig schiefgelaufen. Gruss Reinhard
Um nochmal das gesamte Ausmaß des Dramas deutlich zu.machen: > Dieser Mikrocontroller bzw. AD-Wandler soll die Messwerte eines Sensors > über einen USB-Anschluss an einen PC weiterleiten. > Ich möchte die Messwerte min. in tabellarischer Form auf meinem PC ansehen Das sind für mich mehr Teilprobleme als nur C oder nicht C... Und dann ist da noch die Hardware. Wie wird der Sensor angeschlossen und wie wird die USB Verbindung zum PC realisiert? @ berus Zeichne mal eine Skizze mit den nötigen Komponenten und überleg dir, was du davon schon kannst, und was du noch lernen musst.
ich habe mein Projekt lange geplant und gründlich darüber nachgedacht. Ich möchte eine Messkette für UV-Strahlen aufbauen. Dazu habe ich mir schon eine UV-Diode ausgesucht und den elektrischen Schaltplan habe ich inzwischen auch entworfen. Den werde ich noch verfeinern. Wobei ich mir nicht ganz sicher bin, ob man für eine UV-Diode noch einen analogen Tiefpass benötigt. Das sei aber nur so dahingestellt. Wie Merkel sagen würde: Das Gebiet der uC ist für mich Neuland ;) So wie ich es verstanden habe, haben viele uC schon einen ADW. Diese müssen nur noch an die eigenen Bedürfnisse angepasst werden. Diese Anpassung werden über die Register des im uC integrierten ADWs vorgenommen. Diese Register sind bei ATmegas das "ADMUX" und das "ADCSRA". Diese muss ich so programmieren, dass sie meinen Befehlen gehorchen. Ich muss zunächst ein Mal herausfinden, welcher Vorschlag von euch, der einfachste ist. Das heißt mich zwischen den verschieden Controllern entscheiden und danach noch die Programmiersprache festlegen. Soll ich einen Atmega, FT232 oder doch einen Arduino auswählen? Mir kommt es so vor als würde jeder denjenigen uC hochpreisen, mit den er selbst schon einmal gearbeitet hat, unabhängig davon, ob es jetzt für einen Einsteiger einfach ist. Auf jeden Fall finde ich es gut, dass ihr mir die vielen verschiedene Möglichkeiten offen gelegt habt. Jetzt muss ich mich allerdings mit der berühmten "Qual der Wahl" rumplagen. Aber so soll es sein. Eine vernünftige Marktanalyse erspart mir viel Arbeit im Nachhinein. Ich fang damit an. Ich melde mich später wieder! Berus
Ich habe doch noch eine Frage bevor ich in die große Welt der uC eindringe. Wenn ich irgendein beliebigen Atmega mit C++ programmiere, dann sendet der uC ja nur dem PC ein Binärcode. Gibt es jetzt schon gratis Software, die mir diese Binärzahlen in Spannung in Form einer Tabelle ausliest? Sehe ich das richtig oder bin ich noch immer blind? Berus
Claude Juncker schrieb: > Soll ich > einen Atmega, FT232 oder doch einen Arduino auswählen? Du vergleichst Äppel mit Birnen und Pflaumen... Ein Arduino ist ein fertiges Board, das (meist) einen ATMega enthält und oft auch noch einen zusätzlichen ATMega-USB. Unter Arduino (als Konzept) versteht man aber auch eine Entwicklungsumgebung mit eigenen Bibliotheken, die auf die Arduino-Hardware zugeschnitten sind und in C++ verwendet werden. Ja, richtig gelesen, Arduino ist C++ mit eigenen Bibliotheken. Demnach ist Arduino für Dich das Mittel der Wahl (ich meide es aber wie der Deiwel das Weihwasser, denn für C und C++ bin ich zu doof). Ein FT232 ist ein autarker USB-RS232-Umsetzer, wie er in vielen USB-Seriell-Adaptern verbaut ist. Er muss natürlich auch auf die von Dir anzufertigende Platine aufgelötet werden, mitsamt seiner notwendigen Kleinbauteile. Ein ATMega ist ein Controller, der mitsamt seinen Kleinbauteilen auf eine von Dir anzufertigende Platine aufgelötet werden muss. Aber all dieses sind Suchbegriffe für Gooooogel oder Wikipedia... ...
Claude Juncker schrieb: > Soll ich einen Atmega, FT232 oder doch einen Arduino auswählen? Einen „ATmega oder FT232“ sollst du gar nicht in Betracht ziehen. ;-) Der FT232* (folgen noch irgendwelche Buchstaben) ist ein IC, der einen Datenstrom gemäß RS-232-Format (aber mit TTL-Pegel, also so, wie es ein Controller an seiner UART hat) auf USB umsetzt. Aus Sicht des PCs ist das dann eine „virtuelle serielle Schnittstelle“, auf die du beliebige Programme aufsetzen kannst, die normalerweise mit seriellen Schnittstellen arbeiten würden, beginnend bei einem allgemeinen Terminalprogramm. Den FT232 brauchst du also zusammen mit einem ATmega<irgendwas>, weil du damit das Problem „PC-Anbindung“ auf das Problem „ich muss eine Aus- und ggf. Eingabe über die UART meines Controllers vornehmen können“ herunterbrechen kannst, welches eine ziemliche Standardaufgabe ist, für die es unzählige Beispiele gibt. Ein Arduino ist in allererster Linie dann eine Hardwareplattform, die (je nach Modell) genau so etwas schon als fertige Hardware bietet: ein Controller mit einer seriellen Anbindung via USB. (Zusätzlich gibt's für die Arduino-Plattformen noch ein separates Programmiermodell, welches ein wenig von Standard-„alles zu Fuß“-C abweicht, aber das musst du nicht zwingend benutzen, falls du dich für Arduino als Hardwareplattform entscheidest.) Zusätzlicher Vorteil des Arduino ist ein integrierter Programmieradapter. Ansonsten gibt es auch genügend alternative Hardwareplattformen, die (bis auf die besondere Arduino-Programmierumgebung) ähnliches leisten, oder du kannst natürlich auch alles selbst bauen.
Claude Juncker schrieb: > dann sendet der uC ja nur dem PC ein Binärcode. Nein. Er sendet das, was du ihn senden lässt. Das können durchaus lesbare Zeichen sein. > Gibt es jetzt schon > gratis Software, die mir diese Binärzahlen in Spannung in Form einer > Tabelle ausliest? S. o., im einfachsten Falle fängt man mit einem Terminalprogramm an, in dem man sich die Ausgaben anzeigen lässt. Die Umwandlung der Binärzahlen in lesbaren Text (bzw. konkrete Werte deines UV-Sensors, was auch immer) lässt man dann gleich im Controller machen. Das ist ja schließlich auch ein (wenn auch kleiner) Computer.
Gast
#3282643
Du bist einfach noch sehr unerfahren und deswegen stellst Du die falschen Fragen auf falsch Weise. Das ein Anfänger, im Vorhinein, durch gründliche "Marktanalysen" sämtliche Fragen klären kann, ist ein Mythos. Das klappt so nicht. Du wirst viele Dinge tun, die nicht direkt auf Dein Ziel hinführen, Dir aber eine Menge Erfahrungen vermitteln die Du für Dein Ziel brauchen kannst. Fange einfach mal damit an, eine LED zum blinken zu bringen. Es ist wesentlicher das Du überhaupt anfängst, als das Du gleich das richtige Board, die richtige Programmiersprache und die richtigen Bauteile wählst. Diese ersten eigenen Erfahrungen werden Dir Richtungen weisen, die wir anderen schon kennen. Das sind sehr persönliche Erfahrungen. Deswegen sind sie teilweise auch widersprüchlich. Deswegen: Fang mit was ganz Einfachem und mit wenig finanzielle Aufwand an. Alle anderen Vorabfragen sind letztlich sinnlos.
Claude Juncker schrieb: > ich habe mein Projekt lange geplant und gründlich darüber nachgedacht. ... > einen Atmega, FT232 oder doch einen Arduino auswählen? Mir kommt es so > vor als würde jeder denjenigen uC hochpreisen, mit den er selbst schon > einmal gearbeitet hat, unabhängig davon, ob es jetzt für einen > Einsteiger einfach ist. Ja, natürlich kann man nur zu Dingen seine Erfahrungen übermitteln die man kennt ... Übrigens habe ich noch nie mit einem Arduino etwas gemacht, glaube aber das es relativ einfach ist und die Anzahl der Menschen, die damit herum Basteln ist groß. Ich glaube Du hast eine Breite Basis für Unterstützung und Dokumentation. Wenn Du später dann tiefer einsteigen möchtest hast Du auch die Möglichkeit "roh" die Atmel Prozessoren in der Arduino-Platform zu nutzen. Und zu guter Letzt gibt es diese "Hardware-Shield-Welt". Es gibt so viele Hardware Erweiterungen das es sehr wahrscheinlich ist das Du selbst erst mal nicht basteln möchtest, Du kannst natürlich trotzdem selbst Hardware-Erweiterungen entwickeln, wenn Du möchtest. Meiner Meinung nach hast Du damit einen einfachen Einstieg und kannst die vielen Dinge, die Du lernen musst erst mal entkoppeln. > Ich melde mich später wieder! > > Berus
Claude Juncker schrieb: > Wenn ich irgendein beliebigen Atmega mit C++ programmiere, dann musst Du erstmal den richtigen Compiler in Deine C++-IDE einbinden. Mit Deinem C++-Kompilat für PC kann der AVR nix anfangen. > dann sendet der uC ja nur dem PC ein Binärcode. UART (RS232) sendet Bytes. Die ADCs der AVRs haben eine Auflösung von 10 Bit. Demnach sind zwei Bytes Rohdaten je Messwert zu übertragen. Man kann natürlich die Daten auch im AVR skalieren und in ASCII-Text umwandeln und diesen dann mit entsprechenden Trennzeichen (z.B. wie *.csv) als Text zum PC (mit Terminalprogramm) senden, der es dann als Datei speichern und in eine Tabellenkalkulation einlesen kann. ...
Gast
#3282653
Natürlich habe die meisten von uns den letzten Prozessor, mit dem sie gearbeitet haben, im Kopf. Das gilt sowohl im positiven wie auch im negativen Sinne. Wenn ich Deine Posts richtig gelesen habe, hast Du zwei Probleme: 1. Analogwerte Messen. 2. Daten übertragen. Beides können zumindest die Atmels, ohne externe Unterstützung, nur eingeschränkt. Bei der analogen Messung musst Du Dich mit der Genauigkeit (meist 10 Bit) herumschlagen. Du musst zur Kenntnis nehmen, dass nur lt. Datenblatt, eine direkte Messung möglich ist. Da sind so Sachen wie Spannungsbereich, Eingangswiderstand und -schutz in der Warteschlange. Bei der Anzahl an analogen Eingängen gilt z.B. nicht beliebig viele und je mehr, desto langsamer. Bei der Datenübertragung würde es mich nicht wundern, wenn die Implementierung eines USB-Treibers mehr Zeit in Anspruch nimmt, als die der Analogmessung. Es gibt, mittlerweile, Chips, die sozusagen USB eingebaut haben und welche, die auf externe Unterstützung angewiesen sind. Da hat sich der oben erwähnte FTDI-Chip bewährt, der ist aber nicht der einzige. Wenn Du Dich einfach mal spielerisch dem Problem nähern willst, so würde ich mir mal die Arduino-Serie anschauen. Damit kannst Du 1:1 (wie im Datenblatt) Analogmessung ausprobieren und eine serielle (u.U. auch USB) Schnittstelle ist auch schon da. Der nach meiner Meinung größte Vorteil dieser Lösung ist der, wenn sich herausstellt, dass genau diese Lösung die Falsche war, Du finanziell nicht ruiniert bist.
Gast
#3282694
Wenn man den Thread so durchliest, kommt man, besonders was Assembler/C/C++ angeht, zu dem Schluss, dass Claude hier ein Selbstgespräch führt, in dem er mal zu dieser, mal zu jener Lösung neigt, aber die Beiträge der anderen liest er wohl garnicht. Jedenfalls bin ich mir nicht bewusst, dass wir ihn für ein Problemchen wie eine Messwerterfassung, das sich heute schon mit den kleinsten Controllern realisieren lässt (ADC + UART), gemeinsam dazu gedrängt haben, unbedingt in C++ zu programmieren. Etwas mehr Vernunft ist im Forum doch noch vorhanden. Gruss Reinhard
@Hannes: dein Überblick hinsichtlich der Unterschiede zwischen Arduino, FT232 und ATmega ist sehr aufschlussreich. Ich habe die Birne mit dem Apfel verwechselt, weil sie von Weitem sehr ähnlich aussehen. @dl8dtl: also daraus ziehe ich den Schluss, dass der Arduino (als Bauteil und Software) für meine Absicht geeignet ist, Da es mir einige Arbeitsschritte erspart. Auch du, so wie Hannes, empfiehlst mir den Griff zum Arduino hin, jedenfalls hast du ihn mir schmackhaft gemacht. "S. o., im einfachsten Falle fängt man mit einem Terminalprogramm an, in dem man sich die Ausgaben anzeigen lässt. Die Umwandlung der Binärzahlen in lesbaren Text (bzw. konkrete Werte deines UV-Sensors, was auch immer) lässt man dann gleich im Controller machen." wichtig! @Hmm(Gast):"Du bist einfach noch sehr unerfahren und deswegen stellst Du die falschen Fragen auf falsch Weise." Das mag stimmen. "Fang mit was ganz Einfachem und mit wenig finanzielle Aufwand an" Ich habe aber einen straffen Zeitplan und kann es mir deshalb nicht erlauben, etwas anderes als mein Projekt zu machen. Das man durch Fehler dazu lernen kann, das sehe ich auch so. @Frickelkram: danke! Auch du rätst mir zu mindesten indirekt zum Arduino. @hannes: "dann musst Du erstmal den richtigen Compiler in Deine C++-IDE einbinden. Mit Deinem C++-Kompilat für PC kann der AVR nix anfangen." Also benötige ich noch einen Compiler, der dem AVR mein C++ Code übersetzt. Welche Compiler sind da gängig? Auch du erwähnst das "Terminalprogramm". Dieses Schlagwort werde ich sicherlich noch brauchen. @amateur(Gast): mein Problem liegt nicht im Aufnehmen des Analogsignals, jedenfalls theoretischnicht. Das glaube ich zumindestens ;) ich habe gar nicht genug Geld, um mich finanziell zu ruinieren ;) @Reinhar Kern: das sind nicht gerade leichte Vorwürfe. Was du Problemchen nennst, ist für mich eine große Herausforderung. Ich mache so etwas zum ersten Mal. Ich wollte nicht ignorant erscheinen. Es ist nur so, dass ich nicht auf jeden einzelnen Beitrag antworten möchte, da das sehr zeitfressend ist. Natürlich kann man seine Meinung ändern, wenn man der Überzeugung ist, dass es zu einer Verbesserung bzw. Erleichterung führt. Nichts für Ungut! Besten Dank an alle! Berus
Gast
#3282804
@Claude Hättest du gestern >> Autor: Claude Juncker (berus) >> Datum: 15.08.2013 19:46 angefangen dich hier ein zu arbeiten: http://www.mikrocontroller.net/articles/AVR-Tutorial dann würdest du jetzt >> Autor: Claude Juncker (berus) >> Datum: 16.08.2013 16:02 schon Werte an den PC übertragen. ...
Gast
#3283030
Oh Mann Ein Arduino kostet nur 20 Euro. Die Software gibt es kostenlos. Warum kann man sich nicht einfach einen kaufen. Da kann man alles ausprobieren und bei nichtgefallen den Atmel aus dem Sockel nehmen und noch selbst verlöten. Muss man jedes Detail hier erst mal stundenlang durch diskutieren? Fang an mal was zu tun.
Reinhard Kern schrieb: > gemeinsam dazu gedrängt haben, unbedingt > in C++ zu programmieren. Das liegt nur daran, dass er behauptet hat, C++ zu können. Also liegt es nahe, ihm Arduino zu empfehlen, was ja (anderen Arduino-Threads zufolge) auch nur (ressourcenverschwenderisches) C++ mit eigenen, auf die Arduino-Haerdware abgestimmten Bibliotheken sein soll. Ansonsten würde ich niemandem C++ oder Arduino empfehlen. Hätte er geschrieben, dass er Qbasic, Visual-Basic oder Pure-Basic kann, dann hätte ich ihm Bascom empfohlen. Aber hätte ich Enten gekauft, dann wären die Hühner nicht ersoffen... ;-) ...
Hannes Lux schrieb: > (ressourcenverschwenderisches) C++ C++ ist keineswegs per se ressourcenverschwenderisch. Andererseits kann man auch in Assembler ressourcenverschwenerisch arbeiten. ;-) (Solange man eine bestimmte Architektur nicht gerade wie seine Westentasche in- und auswändig kennt, dürfte das dort sogar der Regelfall sein.)
Gast
#3283277
Hannes Lux schrieb: > auch nur (ressourcenverschwenderisches) C++ C++ ist nicht verschwenderisch, da gibt es eben eine Tabelle mit den Objektreferenzen und den Pointer darauf. Wieviele Objekte hat man auf einem kleinen 8bit µC ? Sagen wir hundert, dann enthält die Referenztabelle 100 Einträge = 101 Byte mehr. Das ist aber den Vorteil der Kapselung und Vererbung mehr als Wert ! Das Problem hier liegt wohl eher beim TS, denn er hat bis jetzt wohl noch kein Tutorial gelesen bzw. mal wie schon erwähnt eine LED blinken lassen und via Poti gedimmt, damit würde er jetzt wissen wie der ADC und die PWM funktionieren. Wenn er wirklich C++ kann muß er sich nur den µC als einzelne Klasse vorstellen und darin seine Funktionen unterbringen, wo liegt das Problem ?
Jörg Wunsch schrieb: > C++ ist keineswegs per se ressourcenverschwenderisch. Auf dem kleinen AVR schon. Von Plattformen mit OS war hier nicht die Rede. > > Andererseits kann man auch in Assembler ressourcenverschwenerisch > arbeiten. ;-) Sicher kann man das. Man kann in AVR-ASM aber auch recht effizient programmieren, wenn man die Architektur einigermaßen kennt. Jetzt schreit der C-ler natürlich wieder nach der fehlenden Portablität. Natürlich ist das nicht portabel, muss es aber auch nicht sein, wenn man es nur hobbymäßig betreibt und nicht unter Termindruck seine Semmeln damit verdienen muss. Übrigens ist die hochgepriesene Portablität auf so kleinen Controllern wie den ATTinys und (kleinen) ATMegas auch nur solange möglich, wie man keine Hardware-Einheiten benutzt, die nicht jeder Controller hat. So wäre z.B. das Portieren meines Modellbahn-Soundmodules mit ATTiny85 auf einen ATMega selbst dann sinnfrei, wenn es in C geschrieben wäre. Denn es wird der Timer mit PLL als ADC benutzt, ein Feature, dass die ATMegas (in DIL-Gehäusen) nunmal nicht haben. ...
cppler schrieb: > Das Problem hier liegt wohl eher beim TS, denn er hat bis jetzt wohl > noch kein Tutorial gelesen bzw. mal wie schon erwähnt eine LED blinken > lassen und via Poti gedimmt, damit würde er jetzt wissen wie der ADC und > die PWM funktionieren. Das gibt sein straffer Zeitplan doch nicht her... ;-) ...
Hi Hannes, Hannes Lux schrieb: > Reinhard Kern schrieb: ... > Das liegt nur daran, dass er behauptet hat, C++ zu können. Also liegt es > nahe, ihm Arduino zu empfehlen, was ja (anderen Arduino-Threads zufolge) > auch nur (ressourcenverschwenderisches) C++ mit eigenen, auf die > Arduino-Haerdware abgestimmten Bibliotheken sein soll. also das war sicherlich nicht der Grund warum ich den Arduino für die Beste Wahl halte. Ich glaube einfach das Claude viel schneller in Gang kommen wird mit so einem Teil. Hilfe gibt es wie Sand am Meer, Hardware ist kein Problem ... das ist alles. Ich erinnere mich noch wie steinig der Weg vom blanken Mikrocontroller zum funktionierenden Board sein kann. Vielleicht haben das einige hier vergessen? Die Programmiersprache sehe ich als zweitrangig an. Ich habe schon in viele Sprachen programmiert, angefangen habe ich in Assembler ... meine Erinnerungen an Fortran versuche ich zu verdrängen ... zu C komme ich immer wieder zurück. Das wird Claude auch irgendwann so gehen, vermute ich.
Hannes Lux schrieb: > Jörg Wunsch schrieb: >> C++ ist keineswegs per se ressourcenverschwenderisch. > > Auf dem kleinen AVR schon. Nein, Hannes. Über Dinge, die du nicht kennst, solltest du besser nicht urteilen. C++ als Sprache hat gegenüber anderen Hochsprachen keinen grundsätzlichen Overhead. Das ist auch völlig unabhängig davon, ob man nun Klassen aufbaut und davon Objekte instanziiert oder ob man C++ nur als eine Art C mit leicht anderer/erweiterter Syntax benutzt. Overhead entsteht erst, wenn man die konkrete Zuordnung eines Objekts zu einer Klasse (und damit zu den anzuwendenden Methoden) erst zur Laufzeit ermitteln kann, oder wenn man Konzepte wie exceptions benutzt. In beiden Fällen würde aber ein ähnlicher Overhead entstehen, wenn man sowas in C oder gar in Assembler schreibt. Die Arduino-Umgebung erzeugt in der Tat nicht völlig optimalen Code für manche Dinge (Manipulieren von IO-Pins beispielsweise), aber das liegt nicht am zugrunde liegenden C++, sondern am dort gewünschten recht hohen Abstraktionsniveau: Wenn die Applikation eben Pin 3 einschalten will, dann geht das über eine Bibliothek, die das für die konkrete Hardwareplattform umsetzt. Kostet ein paar Zyklen mehr als ein direktes SBI, aber dafür kann man den Quellcode dann eben nicht nur 1:1 auf einem anderen Arduino weiter benutzen, bei dem Pin 3 jetzt nicht an PB3 sondern an PD5 liegt, sondern selbst auf einem, bei dem es vielleicht PB13 eines Cortex-M3 ist. > Sicher kann man das. Man kann in AVR-ASM aber auch recht effizient > programmieren, wenn man die Architektur einigermaßen kennt. Naja, wenn man die Architektur nur einigermaßen gut kennt, sollte man sich nicht wundern, dass der Compilerhersteller sie vielleicht doch sogar besser kannte. ;-) Man muss sie bei der Qualität heutiger Compiler schon recht gut kennen, damit man in Assembler wirklich durchweg besseren Code als ein Compiler schreibt. Für einen AVR würde ich mir das beispielsweise gerade so zutrauen, für einen ARM überhaupt nicht, auch wenn ich eine grundlegende Idee von dessen Assemblersprache und Befehlssatz habe und das Resultat des Compilers zumindest lesen und verstehen kann.
Wolfgang Heinemann schrieb: > meine Erinnerungen an Fortran versuche ich zu verdrängen :-)
1 | |
Jörg Wunsch schrieb: > Wolfgang Heinemann schrieb: >> meine Erinnerungen an Fortran versuche ich zu verdrängen > > :-) > >
1 | |
2 | |
bitte nicht ...
Gast
#3283401
OT: Bei LISP immer schön an die ' denken und wir wissen ja warum EMACS so schön Klammern hervorhebt :-P @Hannes: Also die Programmiersprache selber ist eigentlich egal wenn man denn weiß was man will und wie man dahin kommt. Ob ich eine Schleife mit "goto", "jmp" oder "while" realisiere bleibt sich gleich es wird nachher ja sowieso alles in die jeweiligen Opcodes übersetzt. Der Vorteil von Hochsprachen ist aber nunmal deren Unabhängigkeit von der Architektur, was bei Assembler nicht gegeben ist. Die erwähnten Abstraktionsmöglichkeiten wollen wir dabei mal komplett weglassen ;-)
Wolfgang Heinemann schrieb: >> IF (I) 13, 23, 33 >> > > bitte nicht ... Eigentlich ist es schade, dass es keinen "Obfuscated FORTRAN Code Contest" gibt (wie bei C). Dabei bietet die Sprache doch nun wirklich noch viel mehr Möglichkeiten, verworrenen und unlesbaren Code zu verfassen als C … Wie hieß der Spruch doch gleich? "Real Programmers can write FORTRAN in any language." :)
Jörg Wunsch schrieb: > C++ als Sprache hat gegenüber anderen Hochsprachen keinen > grundsätzlichen Overhead. Das ist auch völlig unabhängig davon, ob man > nun Klassen aufbaut und davon Objekte instanziiert oder ob man C++ nur > als eine Art C mit leicht anderer/erweiterter Syntax benutzt. Um das mal zu belegen. Eine einfache LED-Klasse könnte etwa so aussehen:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
Hier das Ergebnis:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
@ Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite >> meine Erinnerungen an Fortran versuche ich zu verdrängen >:-) > IF (I) 13, 23, 33 Und was bedeutet diese Zeile?
1 | |
2 | |
3 | |
4 | |
5 | |
???
Sorry, aber bei den oben stehenden muss ich schon etwas schmunzeln. Da werden FT232, USB-UART und sogar Arduino empfohlen. Fehlt bloß noch der RPi... Das Problem liegt dabei woanders. Der TO hat offenbar ein Problem damit, von PC-Programmierung auf µC-Programmierung umzuswitchen und sich in die Funktionsweise eines µC hineinzudenken. Er denkt offenbar in Threads und Objekten, statt sich mit Bits und Registern zu befassen. Da hilft meiner Meinung nach nur ein konsequentes Kennenlernen des jeweiligen µCs. Und zwar vorzugsweise in ASM. Denn nur so begreift man, was im Inneren des Controllers abgeht. Allerdings ist es illusorisch, als Anfänger einen USB-Stack auf die Beine zu stellen, egal ob in C oder ASM. Dafür gibt es von vielen Herstellern fertige Libs die solchen komplexen Aufgaben übernehmen. Natürlich sollte man auch dort den µC einigermaßen kennen, sonst steht man bei Fehlern auf dem Schlauch. Mit dem PIC 18F2550 und der USB-Lib von Microchip konnte ich eine ähnliche Aufgabe an einem Nachmittag lösen. Auf PC-Seite ist das ganze dank virtuellem COM-Port recht simpel. Alle notwendigen Dateien konnte ich bei Microchip runterladen. Auch wenn es sicher bessere µCs als die AVRs gibt, so sollten doch auch bei Atmel entsprechende Bibliotheken verfügbar sein. Wenn nicht sollte man sofort wechseln...
Gast
#3283686
>>"Fang mit was ganz Einfachem und mit wenig finanzielle Aufwand an" >Ich habe aber einen straffen Zeitplan und kann es mir deshalb nicht erlauben, etwas anderes als mein Projekt zu machen. Schön. Aber was nützt Dir das? Falls ich plane bis Mittwoch eine Saturn-V nachzubauen, kann ich mir bis dahin alle Toilettengänge verkneifen, werde es wohl aber nicht weiter als bis zum fertigen "Utility"-Beutel bringen. :-) Ein Zeitplan muss realistisch sein oder das Projekt realistisch für einen vorgebenen Zeitrahmen. Jetzt schreibe doch mal bis wann Du fertig sein musst. Das Problem wird sonst sein, dass Du bei der Konfiguration des ADCs hier so Fragen stellst, wie man zwei Bits setzt ohne die anderen zu beeinflussen oder warum die erste Wandlung immer so krumm ist. (Es mag sein, das die Beispiele hier nicht treffen). Es fehlen Dir einfach die Grundlagen. Ich habe den einfachen Anfang nicht empfohlen, weil das didaktisch sinnvoll sondern weil es praktisch notwendig ist. Ansonsten sage ich Dir ein Scheitern, wenn auch innerhalb des Zeitplanes, voraus. Tut mir leid.
Gast
#3283700
Jens PICler schrieb: > Mit dem PIC 18F2550 und der USB-Lib von Microchip konnte ich eine > ähnliche Aufgabe an einem Nachmittag lösen. Damit sollte er sich unter den gegebenen Umständen garnicht erst befassen, sondern nur ADC und UART zum Laufen bringen, den Rest erledigt ein FTDI232 oder ein entsprechender Wandler am PC. Auch wenn das unelegant klingt, aber dann muss er sich nicht auch noch mit USB auseinandersetzen. Das kann er nachholen, wenn sein Konstrukt in Tausender-Stückzahlen produziert werden soll. Ich nehme an, für dich war USB nicht so ganz neu. Gruss Reinhard
Gast
#3283710
Bei Conrad gibt es dafür etwas fertiges: H-Tronic 12 Bit USB-Datenerfassungssystem Baustein Über USB Best.-Nr.: 191028 - 62 Der TO hat offensichtlich mit µC noch nie etwas zu tun gehabt und braucht innerhalb einer Woche etwas funktionierendes. Das klappt mit den obigen Ratschlägen niemals.
Falk Brunner schrieb: >> IF (I) 13, 23, 33 > > Und was bedeutet diese Zeile?
1 | |
2 | |
3 | |
(Labels in C sind Bezeichner, in FORTRAN einfach nur Zahlen, die in Spalte 1 bis 5 stehen müssen. Daher habe ich das mal C-mäßig umschrieben.) Das ist das sogenannte arithmetische IF, eine der größten Krankheiten von FORTRAN. ;-)
Gast
#3283766
Ein Beispiel wie einfach es mit einem Arduino realisiert werden könnte. http://www.mats-vanselow.de/arduinotemperatur Im ersten Beispiel erfolgt die Ausgabe an ein Terminalprogramm. Das letzte Beispiel (mit Ethernet Shield) ist gar mit Ausgabe als Website. Und wenn es danach weitergehen soll, und mehr selber gemacht werden soll, so kann jederzeit auch ohne Arduino-Overhead weiter gefahren werden. Jedenfalls in der Zeit, seit dieser Thread eröffnet wurde, würde ein erster Entwurf damit schon längst laufen, wenn das Projekt denn schon so zeitkritisch ist.
Gast
#3283834
Ich finde es schon krass, wie sich hier alle auf den Thread stürzen und einem völlig unbedarften Anwender mit Tipps über technische Details der Implementierung überhäufen. Dabei ist absolut überhaupt rein gar nichts über die Anforderungen bekannt: * Was genau soll damit gemacht werden? * Wer ist der Anwender? * Wie ist die Umgebung? * Welche Stückzahlen werden benötigt? * Technische Anforderungen an Auflösung, Frequenz, Messbereich? Kauf dir ein Multimeter mit PC-Schnittstelle und gut. Das schreibt dir die Daten direkt nach Excel. Brauchst du nur auspacken, kein Assembler, kein C/C++, keine Windows Programmierung...
Thomas schrieb: > Dabei ist absolut überhaupt rein gar nichts über die Anforderungen > bekannt: > * Was genau soll damit gemacht werden? > * Wer ist der Anwender? > * Wie ist die Umgebung? > * Welche Stückzahlen werden benötigt? > * Technische Anforderungen an Auflösung, Frequenz, Messbereich? Das hatte ich in Kurzform schon mal angeregt im Beitrag "Re: Wie lange Assemblerprogrammierung IC ADC ?" >>> @ berus >>> Zeichne mal eine Skizze mit den nötigen Komponenten und überleg dir, was >>> du davon schon kannst, und was du noch lernen musst. Denn beim Aufstellen und Ausarbeiten eines Konzeptes würden sich diese Fragen automatisch ergeben... Aber ich finde den Ausflug nach Fortran auch ganz interessant... ;-)
Gast
#3283862
Das H-TRONIC Modul gibt es übrigens auch bei: Reichelt: DES 8-12 USB :: Datenerfassung, 8-Kanal 12-bit USB 37,50 € Pollin: Bestellnummer: 810 169 37,50 € Oder wie Thomas bereits schrieb: ein Digitalmultimeter mit USB tut es auch.
Hallo Leute, ich melde mich wieder zu Wort. Ich habe mir das AVR-GCC-Tutorial durchgelesen. Jeder, der meinte, ich sole zuerst das durchlesen bevor ich hier Fragen poste, hatte Recht. Das Tutorial ist sehr hilfreich, leicht verstaendlich und beantwortet alle Einsteigerfragen. Hier einen grossen Dank an dessen Autor. Frage 0: Was bedeutet GCC? Ich habe mir die Arduino Angebote angesehen. Die sind zwar nutzerfreundllich und zwechkdienlich, aber sie sind mit zu teuer. Das billigste Bauteil kostet - meinen Recherchen zu Folge - 25 Euro. Ausserdem haben sie mehr Fuktionen als mir lieb ist. Ich brauche naemlich nur einen ADC. Dennoch Danke fuer den Fingerzeig auf diese Produkte. Es koennte sein, dass ich sie irgenwann brauchen werde. Thomas schrieb: 1 Was genau soll damit gemacht werden? 2 Wer ist der Anwender? 3 Wie ist die Umgebung? 4 Welche Stückzahlen werden benötigt? 5 Technische Anforderungen an Auflösung, Frequenz, Messbereich? Diese Fragen moeche ich jetzt beantowrten, da das zielfuehrend ist. zu 1. Ich moechte die analogen Signale einer UV-Diode auf dem PC moeglichst auslesen lassen {am besten in Excel}. Das sollte mindestens in einer Tabeller dargestellt warden. zu 2. Ich zu 3. Laborbedingungen zu 4. einmalig zu 5. Ich gehe jetzt davon aus, dass der Messbereich der Eingangsspannung des analogen Signal bei 2,56 V liegen soll und ich somit eine Aufloesung von 0,0025 V bewerkstelligen kann. Frequenzbereich kann ich nicht mit Sicherheit sage, vlt. 1-10 kHz. Allerdings Weiss ich nicht, ob das bei UV-Strahlen viel Sinn macht. Nun weiter: Demjenigen, der behauptet hat, ich soll bei C++ Programmierung bleiben, wenn ich es ansatzweise kann, gebe ich jetzt Recht. Ganz gemaess der Devise: <<Schuster bleib bei deinen Leisten>>. Auch das H-Tronic Modul ist mir zu teuer. Siehe Transitivitaet :}. Ich moechte mir den ICmega8-USB {http://shop.in-circuit.de/pages/19/-C-Module} bestellen. Der liegt in meinem Budget Rahmen. Ausserdem kann ich den mit AVR Studio programmieren, das ja einen Compiler fuer C++ bereitstellt. Frage 1: Reicht ein EEPROM von 0.5 kB. Das scheint mir wenig, auch wenn ich nur ein Programm fuer die AD-Wandlung schreiben moechte. Frage 2: Was beutet TQFP, QFN/ML und PDIP in Bezug auf einen ADW Ich blicke noch nicht ganz durch, was das COM anbetrifft. Frage 3: Hat die Verwendung von COM einen Einfluss auf das Programmieren des IC in C++? Frage 4: Ist jedes Terminalprogramm an jedem COM anwendbar? Besten Dank Berus
@Claude Juncker (berus) >Frage 0: Was bedeutet GCC? Das ist der Name des Compilers. >Ausserdem haben sie mehr Fuktionen als mir lieb ist. Ich brauche >naemlich nur einen ADC. Dann nimm einen nackigen AVR. Den musst du aber noch irgendwo auflöten und beschalten. Kann man machen, ist aber eine weitere Fehlerquelle für Anfänger. >zu 1. Ich moechte die analogen Signale einer UV-Diode auf dem PC >moeglichst auslesen lassen {am besten in Excel}. Das sollte mindestens >in einer Tabeller dargestellt warden. Einfach. Das kann aber auch ein käufliches Multimeter mit RS232 oder USB Anschluss und man muss nix bauen. Kostet aber ein paar Euro. >zu 2. Ich >zu 3. Laborbedingungen >zu 4. einmalig >zu 5. Ich gehe jetzt davon aus, dass der Messbereich der >Eingangsspannung des analogen Signal bei 2,56 V liegen soll und ich >somit eine Aufloesung von 0,0025 V bewerkstelligen kann. Klingt so, als ob die eine Kennlinie oder ähnlichs messen willst. Mein Tipp. Vergiss die Bastelei und muss mit einem Multimeter manuell. Das kostet deutlich weniger Zeit und Aufwand. >Frequenzbereich kann ich nicht mit Sicherheit sage, vlt. 1-10 kHz. >Allerdings Weiss ich nicht, ob das bei UV-Strahlen viel Sinn macht. ;-) Ist die UV-Strahlung konstant oder von der Quelle moduliert? >Frage 1: Reicht ein EEPROM von 0.5 kB. Das scheint mir wenig, auch wenn >ich nur ein Programm fuer die AD-Wandlung schreiben moechte. Du brauchst es nicht. >Frage 2: Was beutet TQFP, QFN/ML und PDIP in Bezug auf einen ADW Das sind die Gehäuseformen, hat mit dem ADC nichts zu tun. >Frage 3: Hat die Verwendung von COM einen Einfluss auf das Programmieren >des IC in C++? Nein. >Frage 4: Ist jedes Terminalprogramm an jedem COM anwendbar? Ja.
> Ich habe mir die Arduino Angebote angesehen. Die sind > zwar nutzerfreundllich und zwechkdienlich, aber sie sind mit zu teuer. > Das billigste Bauteil kostet - meinen Recherchen zu Folge - 25 Euro. > Ausserdem haben sie mehr Fuktionen als mir lieb ist. Ich brauche > naemlich nur einen ADC. Und? In den 5 Tagen, die du bist jetzt verplempert hast, hast du schon mehr Geld in Form von Zeit verbraten, als dir der Arduino gekostet hätte. Und weitergebracht hast du auch noch nichts. 25 Euro ist nicht viel, wenn man bedenkt was du dafür kriegst. Wenn man kostenwahr kalkuliert, dann kommst du mit praktisch allen anderen Methoden auf einen höheren Endpreis. Oder hast du schon eine Platine gefertigt? Hast du schon einen Programmer im Haus? Hast du schon die Bauteile eingekauft, Lötzinn und Lötkolben angeschafft? > <<Schuster bleib bei deinen Leisten>> deineM, M nicht N. Das hat nichts mit Holzleisten zu tun, die man an die Wand nagelt. Die Form, mit deren Hilfe der Schuster einen Schuh aufbaut, das Oberleder in die zum Fuss passende Form zieht und mit der Sohle verleimt, nagelt oder vernäht, heißt 'der Leisten'. Einzahl und männlich.
Hallo Falk, zunaechst Danke fuer deine Antworten. Wieviel kostet ein Multimeter wie du es dir vorstellst. So etwas ist im Internet nicht einfach zu finden. Die UV-Strahlung variiert. Berus
Claude Juncker schrieb: > Wieviel kostet ein Multimeter wie du es dir vorstellst. So etwas ist im > Internet nicht einfach zu finden. Google "Multimeter USB Anschluss" Die ersten, die bei Google rausfallen http://www.reichelt.de/Multimeter-digital/PEAKTECH-3315U/3/index.html?ACTION=3&GROUPID=4058&ARTICLE=73972&SHOW=1&START=0&OFFSET=16& http://www.elv.at/digital-multimeter-va18b-mit-pc-link.html
@Karl Heinz Buechegger: du haettest nicht ausfallend warden muessen. Ausserdem steht es dir nicht zu meine Leistung zu beurteilen. Du kannst gar nicht wissen, was ich in den fuenft Tagen alles zu tun hatte und geschafft habe. Mit solchen Anschuldigungen waere ich an deiner Stelle vorsichtig. Berus
@ Claude Juncker (berus) >Wieviel kostet ein Multimeter wie du es dir vorstellst. So etwas ist im >Internet nicht einfach zu finden. Google kaputt? Conrad 123294 - 62 http://www.reichelt.de/Multimeter-digital/UT-61C/3/index.html?&ACTION=3&LA=2&ARTICLE=97148&GROUPID=4058&artnr=UT+61C >Die UV-Strahlung variiert. Ach ne? Wer hätte das gedacht? Die Frage ist. Wie schnell?
@Karl Heinz Buechegger: wie soll ich mit den Multimetern, fuer die du einen Link angegeben hast, die Intensitaet der UV-Strahlen aufzeichnen koennen? Soweit ich die entprechenden Datenblaetter richtig verstanden habe, ist das nicht ohne Weiteres moeglich. Soll ich etwa einen Sensor an das Multimeter schliessen? Gruss Berus
Claude Juncker schrieb: > Ich habe mir die Arduino Angebote angesehen. Die sind zwar > nutzerfreundllich und zwechkdienlich, aber sie sind mit zu teuer. Das > billigste Bauteil kostet - meinen Recherchen zu Folge - 25 Euro. > Ausserdem haben sie mehr Fuktionen als mir lieb ist. Ich brauche > naemlich nur einen ADC. http://shop.cboden.de/Digispark/Digispark-USB-Entwicklungs-Board.html kann über die Arduino IDE programmiert werden, hat einen ADC an Board und noch ein paar Pins extra. und kostet nicht ganz 9 Euro. Sollte für Deine Bedürfnisse vollkommen ausreichen.
Claude Juncker schrieb: > @Karl Heinz Buechegger: > > du haettest nicht ausfallend warden muessen. Wer ist denn ausfallend geworden?
@Falk: Woher soll ich das denn bitte vor der Messung wissen?
Karl Heinz Buchegger schrieb: >> <<Schuster bleib bei deinen Leisten>> > > deineM, M nicht N. Das hat nichts mit Holzleisten zu tun, die man an die > Wand nagelt. Die Form, mit deren Hilfe der Schuster einen SChuh aufbaut, > das Oberleder in die zum Fuss passende Form zieht und mit der Sohle > verleimt, nagelt oder vernäht, heißt 'der Leisten'. Einzahl und > männlich. Und was ist, wenn der Schuster mehrere dieser Leisten sein Eigen nennt, bspw. einen für den linken und einen für den rechten Schuh? Dann wäre es doch unsinnig zu sagen, er solle nur bei einem der beiden bleiben :) SCNR @Claude Juncker: Hier noch zwei Beispiele für Fertigmodule (falls die nicht schon gepostet worden sind): http://www.pollin.de/shop/dt/NjI5OTgxOTk-/Bausaetze_Module/Bausaetze/AVR_NET_IO_Fertigmodul.html http://numato.com/8-channel-usb-gpio-module Da musst du, wenn überhaupt, nur noch das Gegenstück auf PC-Seite programmieren, aber das kannst du ja bereits.
Claude Juncker schrieb: > @Karl Heinz Buechegger: > > wie soll ich mit den Multimetern, fuer die du einen Link angegeben hast, > die Intensitaet der UV-Strahlen aufzeichnen koennen? Soweit ich die > entprechenden Datenblaetter richtig verstanden habe, ist das nicht ohne > Weiteres moeglich. > > Soll ich etwa einen Sensor an das Multimeter schliessen? Kann es sein, dass du 0, in Worten NULL, Ahnung von Elektronik hast? Mit deiner Photodiode musst du sowieso erst mal was machen, damit sich die Helligkeit in einer variierenden Spannung niederschlägt. Das musst du machen, egal ob du jetzt einen µC mit einem ADC hast, oder ob du ein Multimeter mit USB-Anschluss hast. Das einzige was dir das Multimeter abnimmt: Es übernimmt den Teil, den der µC bei der ganzen Sache spielt und du hast bereits fertige Software, mit der du die gemessenen Spannungen auf den PC kriegst ohne dass du selbst programmieren musst. Wenn dir vorschwebt, dass du ein fertiges Gerät findest, bei dem du ausser eine Photodiode an 2 Leitungen anschliessen nichts tun brauchst, dann hast du mit Zitronen gehandelt. Zumindest Photodiode samt Widerstand um einen Spannungsteiler zu bilden und eine Spannungsversorgung für das ganze, brauchst du da wie dort.
Claude Juncker schrieb: > @Falk: > > Woher soll ich das denn bitte vor der Messung wissen? Was willst du denn messen? Wer erzeugt denn das UV-Licht? Reden wir von Nanosekunden, Millisekunden, Sekunden oder gar Minuten in denen die Helligkeit variiert? Wenigstens eine ungefähre Vorstellung wirst du ja wohl haben, in welchen Zeitintervallen die Quelle ihre Intensität verändert.
Gast
#3287737
Bei deinen Anforderungen kommt eigentlich eine Eigenentwicklung nicht in Frage. Ist das privat oder geschäftlich? Habt ihr kein Oszilloskop? Wie seid denn ihr ausgestattet? Hast du keine Kollegen die etwas mehr Ahnung davon haben? Wenn geschäftlich, dann scheiß auf die Kohle und stattet euch erstmal vernünftig aus. Aber Vorsicht, kauf nicht einfach blind eines der verlinkten Geräte. Die meisten dürften fette Eingangsfilter haben und an deinen Frequenzanforderungen (1-10kHz) scheitern.
@ Claude Juncker (berus)
>Woher soll ich das denn bitte vor der Messung wissen?
Nun, man hat zumindest ein VORSTELLUNG des Messbeeichs. Denn es ist ein
"kleiner" Untschied, ob man Mondschein oder Mittagssonne messen will.
Du bist entweder ein Troll oder ein 200% Akademiker.
hallo Leute, @ Karl Hein Buchegger: Bist du heute mit dem falschen Fuss aufgestanden oder warum kommst du mir ein wenig agressiv vor? Wenn ich dir zu dumm bin, dann kannst du das Posten in diesem Thread auch unterlassen. Niemand zwingt dich zum posten. Dennoch akzeptiere ich deine vorgeschlagene Alternative zur UV-Diode. Nach meiner Berechnung ist es aber teurer als das Verfahren mit dem IC. Ich nehme an, dass sich die Intensitaet der UV-Strahlen mikrosekundenweise aendern. @ Yalu X.: deine Links gefallen mir. Die sehe ich mir gleich mal genauer an. Danke Noch eine Frage zur IC-Programmierung. Stelle ich die Abtastrate ueber ADPS0, ADPS1 und ADPS2 IM adcsra, sprich Vorteiler, ein? Berus
@ Karl Heinz Buchegger (kbuchegg) (Moderator) >Wenn dir vorschwebt, dass du ein fertiges Gerät findest, bei dem du >ausser eine Photodiode an 2 Leitungen anschliessen nichts tun brauchst, >dann hast du mit Zitronen gehandelt. Zumindest Photodiode samt >Widerstand um einen Spannungsteiler zu bilden und eine >Spannungsversorgung für das ganze, brauchst du da wie dort. Nö. Es reicht, die Photodiode an das Multimeter im passenden Strommessbereich anzuschließen, damit misst man recht einfach und genau den Photostrom im (nahezu) Kurzschlussbetrieb. Damit kann man schon einiges messen, über mehrere Dekaden hinweg. Ein professionelles Gerät ersetzt es freilich nicht ;-)
@ Claude Juncker (berus) >Ich nehme an, dass sich die Intensitaet der UV-Strahlen >mikrosekundenweise aendern. Lies mal was zum Thema Netiquette http://www.mikrocontroller.net/articles/Netiquette#Klare_Beschreibung_des_Problems
@Thomas: ich soll das im Rahmen eines Uni-Projektes durchfuehren. Deshalb muss ich beim Einkaufen der Komponenten zum Aufbauen der Messkette auf das Budget achten. Ich habe keinen Kollegen, der mehr Weiss als ich. Ich habe auc kein Schwingungsmesser und ich bin schlecht bzw. noch gar nicht ausgestattet. Berus
Falk Brunner schrieb: > Nö. Es reicht, die Photodiode an das Multimeter im passenden > Strommessbereich anzuschließen, damit misst man recht einfach und genau > den Photostrom im (nahezu) Kurzschlussbetrieb. Damit kann man schon > einiges messen, über mehrere Dekaden hinweg. Ah. wusste nicht, das das geht. Wieder was gelernt. Merci vielmals.
Falk Brunner schrieb: >>Frage 2: Was beutet TQFP, QFN/ML und PDIP in Bezug auf einen ADW > > Das sind die Gehäuseformen, hat mit dem ADC nichts zu tun. Doch. !DipAdcEingänge = DipAdcEingänge + 2 Das läuft doch wieder auf Atmega8 hinaus oder? @TO: Chinesische Arduinos gibt es in der Bucht für'n Zehner. mfg.
Gast
#3287790
facialpalmier Also entweder Du bist nicht in der Lage Deinem Betreuer/Prof/Ansprechpartner zu erklären was Du für Deine Messung brauchst oder Du bist mit dem Thema das Dir gegeben wurde schlicht überfordert. Wenn es an der UNI ist sollst Du daraus etwas lernen, z.B. selbständiges Arbeiten und Erfassung von Notwendigkeiten. Mir ist keine UNI bekannt wo die Voraussetzungen für ein Experiment nicht erkannt und entsprechnde Austattung angeschafft werden. Sollte es eine Praktikumsarbeit oder gar Diplom sein bist Du selber gefragt und wenn dann etwas fehlt hast Du Deine Ansprechpartner. Also was genau ist Deine Aufgabenstellung und was GENAU fehlt Dir an Ausrüstung und WARUM tut es das ?
Falk Brunner schrieb: >> Frage 2: Was beutet TQFP, QFN/ML und PDIP in Bezug auf einen ADW > > Das sind die Gehäuseformen, hat mit dem ADC nichts zu tun. Doch, beim ATmega8 schon: in den nicht-DIP-Varianten hat man zwei ADC-Kanäle mehr zur Verfügung, bei den Nachfolgern ATmega88 und Verwandten ebenfalls. Das 28-polige DIP hat einfach zu wenig Pins, sodass ADC6 und ADC7 dort nicht gebondet werden können.
Gast
#3287843
Claude Juncker schrieb: > du haettest nicht ausfallend warden muessen. Ausserdem steht es dir > nicht zu meine Leistung zu beurteilen. > Ich habe keinen Kollegen, der mehr Weiss als ich. Deine Einbildung wird dich zum Scheitern bringen. Gruss Reinhard
Gast
#3287900
> ich soll das im Rahmen eines Uni-Projektes durchführen. Ich nehme an du studierst Biologie oder Chemie? Habt ihr keinen E-Technik Fachbereich? > Ich habe keinen Kollegen, der mehr weiß als ich. Dann solltest du an deiner Kommunikationsfähigkeit arbeiten. > Ich habe auch kein Schwingungsmesser Es gibt in DE keine Bildungseinrichtung ohne Oszilloskop. Selbst in der theologischen Fakultät hier in Paderborn steht irgendwo eins rum. Mag ja sein, dass bei euch im Labor keins steht, aber die anderen Labore / Fachbereiche haben bestimmt was da. Und wenn du höflich und gut vorbereitet bist, dann lassen sie dich sicher auch mal ran. Und wenn du sogar nett und sympatisch bist, dann nimmt sich sicher auch mal jemand Zeit für dich um dir den Messaufbau und ein paar Grundlagen zu erklären. Das kostet dich maximal ein Stück Kuchen in der Mensa.
Ich verstehe es echt nicht, wie man an einer UNI so ein Projekt bekommt/annimmt und man von Tuten und Blasen keine Ahnung hat. Was studierst du denn? Doch bestimmt nicht Philosophie oder Kirchenmusik.
@Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite >Verwandten ebenfalls. Das 28-polige DIP hat einfach zu wenig Pins, >sodass ADC6 und ADC7 dort nicht gebondet werden können. Das ist das kleinste Problem des OPs ;-)
Hallo Leute, Ich schliesse hiermit den Thread bzw. antworte hier nicht mehr auf Beitraege, weil ich das Gefuehl habe, dass einige wenige, die nicht mal den ganzen thread verfolgt haben, einfach nur des Schreiben willens schreiben. Allen anderen, und das ist die Mehrheit, danke ich fuer konstruktive Hilfe und Vorschlaege. Beste Gruesse Berus
Falk Brunner schrieb: > Das ist das kleinste Problem des OPs ;-) Da stimme ich dir allerdings zu …
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.