Guten Abend,
erstmal hoffe ich das ich hier richtig bin, wenn nicht bitte
verschieben. Danke schon mal im voraus :)
Also ich bin neu in (Atmel?) AVR und würde mich mit dem Thema gerne
auseinandersetzte :). Ich kann C und C++ und ein bissel ASM und denke
das ich es mit dem programmieren schaffen kann :D
Was ich machen will:
Ich will mir mehrere AVRs in parallel betrieben um mehr Leistung
zukriegen, weil ein AVR hat ja durchschnittlich nur 16 MHz (oder?).
Außerdem möchte ich non was einfügen wie Grafik aber kein HD oder 4K :O,
sondern ehr Textmodus... Aber natürlich eine Möglichkeit um Daten an den
PC zusenden (LAN, USB, FireWire?) bzw. mit ihm in Kontakt zubleiben,
also das sozusagen 24 Stunden Daten übertragen werden können und nicht
irgendwann die Verbindung abbricht. Und ein micro-SD, mini-SD, SDHX, SD
Slot währe 1A.
Wie löst man so was am schlausten?
Welche Hardware soll ich nehmen?
C, C++ oder ASM?
usw...
LG
Tim schrieb:> Welche Hardware soll ich nehmen?
Einen Rasberry Pi.
Bei deien VOrstellungen bist du schon weit über dem, was mit einem AVR
noch sinnvoll machbar ist.
> C, C++ oder ASM?
was du kannst. Entscheidend ist nicht die Sprache, sondern dass man sie
beherrscht.
> Ich kann C und C++ und ein bissel ASM und denke> das ich es mit dem programmieren schaffen kann
Ich nehme an, Du hast C und C++ auf dem PC praktiziert. Darf ich fragen
in welchem Umfang? Was war Dein letztes Projekt?
Vorausgesetzt, es war nichts allzu Triviales, hast Du eine der
Voraussetzungen erfüllt.
uC Programmierung ist ein großer Teil Elektronik, ein großer Teil
Bitfummelei und ein großer Teil Peripherie-Setup.
Ich rate Dir, die Tutorials hier:
http://www.mikrocontroller.net/articles/AVR-Tutorial durchzuarbeiten.
Ein Teil Deiner Träume ist damit abgedeckt. Und zu dem Rest schaffst Du
damit die Grundlagen.
Karl Heinz schrieb:> Einen Rasberry Pi.> Bei deien VOrstellungen bist du schon weit über dem, was mit einem AVR> noch sinnvoll machbar ist.
OK oder vielleicht noch was stärkeres auf ARM Basis?
Bitflüsterer schrieb:> Ich nehme an, Du hast C und C++ auf dem PC praktiziert. Darf ich fragen> in welchem Umfang? Was war Dein letztes Projekt?
Genau auf dem PC.
Mein letztes Projekt waht Monopoly mit QT und ein kleines Betriebssystem
@ Tim (Gast)
>Ich will mir mehrere AVRs in parallel betrieben um mehr Leistung>zukriegen, weil ein AVR hat ja durchschnittlich nur 16 MHz (oder?).
Unsinn. Wenn du mehr Leistung braucht, nimm einen leistungsfähigeren
Prozessor? ARM ist im Moment hipp, STM32 einer der hart beworbenen
Vertreter dieser Relegion ;-)
>Außerdem möchte ich non was einfügen wie Grafik aber kein HD oder 4K :O,>sondern ehr Textmodus...
Das kann jeder 0815 uC.
http://www.mikrocontroller.net/articles/HD44780> Aber natürlich eine Möglichkeit um Daten an den>PC zusenden (LAN, USB, FireWire?) bzw. mit ihm in Kontakt zubleiben,
Dazu reich im einfachsten Fall ein virtueller UART per USB.
>also das sozusagen 24 Stunden Daten übertragen werden können und nicht>irgendwann die Verbindung abbricht. Und ein micro-SD, mini-SD, SDHX, SD>Slot währe 1A.
Kann auch ein kleiner uC, wenn gleich der nicht mehrere MB/s dort
draufschreiben kann.
>Wie löst man so was am schlausten?
Schlau.
>Welche Hardware soll ich nehmen?
Deine Anforderungen sind zu allgemein. Kann man nicht sagen.
>C, C++ oder ASM?
C oder C++, vergiss ASM. Das ist nur für einen sehr kleinen Teil von
Problemen sinnvoll. Einige Hardcore-Neandertaler werden natürlich
lautstark das Gegenteil behaupten ;-)
"AVRs" sind z.B. µC (Mikrocontroller).
D.h. programmierbare CPUs mit integriertem Flash für Deinen Code, etwas
RAM für Deine Daten und allerlei Peripherie/Schnittstellen (Timer, UART,
GPIOs, I2C, SPI, A/D Wandler, ...), untergebracht in mehr (DIP) oder
weniger (TSOP) bis gar nicht (QFN) bastlerfreundlichen Chipgehäusen.
Ob Du damit jetzt "nur" Daten übertragen willst oder Fertigungsstraßen
steuern möchtest hängt von Dir ab. :D
Lies den Grundlagenartikel der weiter oben verlinkt wurde, bitte.
jz schrieb:> uC ist die Alternative(für die Leute, die mit einer Tastatur nicht> umgehen können) für µC.
Oder mit einem Tablet surfen. Oder mit dem Handy unterwegs sind.
Und das u statt des µ ist schon seit dem letzten Jahrtausend akzeptiert.
Ich erinnere da nur an den uA741 oder den uA723...
Falk Brunner schrieb:> Einige Hardcore-Neandertaler werden natürlich> lautstark das Gegenteil behaupten ;-)
Nö. Das behaupten auch ganz normale Bastler. Der AVR ist mit dem
beschriebenen Einsatzfall i.d.R. immer noch weit von seiner Auslastung
entfernt. Und in Asm eigentlich immer ;-)
Ich empfehle aber die modernen 32 Mhz Xmegas, z.B. Xmega128A4U. Fast
ganz ohne externe Beschaltung sind die für jeden Einsatz gerüstet...
Kommt halt drauf an, ob du Spaß an der Bitfummelei hast, oder ob du
lieber mit C++ und Libraries arbeitest.
Sicher kann man das in Assembler auf mehrere kleine AVRs verteilen.
Dauert halt 2 Jahre, bis man die ganzen Detailprobleme im Griff hat. Und
die Hardware wird auch nicht billiger ein STM-Discovery oder eine Linux
Platine.
Carsten R. schrieb:> AVR Net-IO> Das Tablett oder Handy mit Browser wird zum Display.
Dazu nehme man
netio.davideickhoff.de
Super Sache, diese iOS/Android App!
Lothar Miller schrieb:> Oder mit einem Tablet surfen. Oder mit dem Handy unterwegs sind.
Also mit meinem (einige Jahre alten) Handy kann ich ein µ schreiben, das
kostet nur drei Tastendrücke mehr als ein u.
Und wenn ich die Sprachen beherrschen würde, könnte ich sogar Thai oder
chinesisch darauf schreiben. Die Zeichensätze sind jedenfalls vorhanden
und auch die Eingabemöglichkeiten dafür.
Ich kann mir kaum vorstellen, daß das mit heutigen Smartphones oder
Tablets nicht mehr gehen sollte. Wahrscheinlicher ist wohl, daß sich die
durchschnittliche Kompetenz der Nutzer umgekehrt proportional zur
Leistungsfähigkeit der Geräte entwickelt hat...
> Und das u statt des µ ist schon seit dem letzten Jahrtausend akzeptiert.> Ich erinnere da nur an den uA741 oder den uA723...
Ja, man kam lange Zeit mit 7Bit-ASCII aus. Trotzdem wurden irgendwann
die unseligen Codepages erfunden und später sogar Unicode. Das war
allerdings beides schon im letzten Jahrtausend...
Lothar Miller schrieb:> Und das u statt des µ ist schon seit dem letzten Jahrtausend akzeptiert.
Und in manchen Gegenden wird ein y an Stelle eines µ verwendet, weil die
Unterlänge so "schön" ist ;-(
Da streuben sich einem die Nackenhaare, spätestens wenn des "µC" nicht
für Mikro Controller, sondern für Mikro Coulomb steht.
c-hater schrieb:> durchschnittliche Kompetenz der Nutzer umgekehrt proportional zur> Leistungsfähigkeit der Geräte entwickelt hat...
Kann sie ja auch, wenn die Benutzung derer Gott sei Dank wenigstens an
der Oberfläche zunehmend vereinfacht wird. Denn es gibt wichtigeres als
Kommandozeilen, Bedienalgorithmen und 'Wie und wo zum Teufel mache ich
jetzt dieses und jenes' zu pauken.
c-hater schrieb:> ch kann mir kaum vorstellen, daß das mit heutigen Smartphones oder> Tablets nicht mehr gehen sollte.
Ich habs gerade ausprobiert. Mit meinem galaxy s3 geht es nicht, bzw.
hab ich es nicht gefunden.
Tim schrieb:> Was ich machen will:> Ich will mir mehrere AVRs in parallel betrieben um mehr Leistung> zukriegen
Habe das mal durchgerechnet. Du brauchst genau 73,5 AVRs. Den letzten
musst du dann in der Mitte durchschneiden.
Oder alternativ einen passenden Controller.
Warum willst du da was parallel schalten? Taktfrequenz ist nicht alles,
und wenn man sich überlegt, was ein PC mit gescheiter Programmierung
kann, dann reicht mir auch ein 1000tel der Leistung für Steueraufgaben.
Hauptsache du fängst an zu programmieren. Ich empfehle dir AVR, weil ich
auch damit angefangen habe. Da ich keinen Bock auf Bitmanipulation in
C/C++ hatte, hab ich einfach Assembler genommen und bin immer noch
dabei. Aber mach endlich mal was...
Moby schrieb:> Und in Asm eigentlich immer ;-)> Ich empfehle aber die modernen 32 Mhz Xmegas, z.B. Xmega128A4U.
Also ich möchte keine 128kB in Assembler schreiben müssen, die Xmega
schreien definitiv nach C/C++.
Assembler ist nur was für die ATtiny, z.B. ATtiny13, ATtiny261.
Tim schrieb:> Ich will mir mehrere AVRs in parallel betrieben um mehr Leistung> zukriegen, weil ein AVR hat ja durchschnittlich nur 16 MHz (oder?).> Außerdem möchte ich non was einfügen wie Grafik aber kein HD oder 4K :O,> sondern ehr Textmodus...> übertragen werden können und nicht> irgendwann die Verbindung abbricht. Und ein micro-SD, mini-SD, SDHX, SD> Slot währe 1A.>> Welche Hardware soll ich nehmen?FPGA als AVR Coprozessor oder einen Embedded Prozessor der Grafik;
Multiprozessorsupport (SMP?) und andere Schnittstellen bereits
mitbringt.
MfG,
Peter Dannegger schrieb:> Also ich möchte keine 128kB in Assembler schreiben müssen
Brauchst Du auch nicht, Peter. Denn in Asm ist die Aufgabe meist viel
kürzer gelöst. Der Rest des Flash ist dann ein super Datenspeicher.
Peter Dannegger schrieb:> die Xmega> schreien definitiv nach C/C++.
... und sind daran auch besser angepaßt als AVRs jemals zuvor. Wers
mag...
Wenn man eh Bits in den Registern Konfigurieren muß ist der Unterschied
zu Assembler auch nicht mehr groß. Aber dafür gib es auch Bibliotheken.
Für komplexere Aufgaben die nicht unbedingt hardwarenah auf die Register
zugreifen müssen haben Hochsprachen natürlich Vorteile. Dafür wurden sie
gemacht.
Es hängt halt davon ab was man machen will und welche Sprachen man schon
kennt bzw sich noch aneignen will. Bei komplexen Aufgaben sattelt man
selten von ASM auf C/C++ um und wer größtenteils nur Register
konfiguriert und kompakte Funktionen implementiert, auch wenn sie
zahlreich sein mögen, für den wird es sich kaum lohnen für einen
Einzelfall auf C/C++ oder andere Sprachen umzusteigen.
Der Nachteil bei Assembler ist aber ganz klar. Bei jeder Architektur ist
der Befehlssatz anders. Es gibt nicht den Assembler.
Im Idealfall kann man natürlich beides oder alles. ;-)
@ Moby (Gast)
>> Also ich möchte keine 128kB in Assembler schreiben müssen>Brauchst Du auch nicht, Peter. Denn in Asm ist die Aufgabe meist viel>kürzer gelöst. Der Rest des Flash ist dann ein super Datenspeicher.
Geh wieder in deine Höhle und hämmere mit deinem Fauskeil auf dem
Mammutschädel rum. Viel Spass.
Moby schrieb:> Schee... Allein, der Vergleich ist völlig daneben ;-)
Stimmt, es ist kein Mammutschädel, sondern nur Brei. Und Du hämmerst
nicht, sondern rührst nur um :)
SCNR.
Ach schade, daß derlei wunderbare Poesie sowas abwertendes hat ;-) Dabei
erreicht man mit Asm so vieles so einfach so schnell und auf kürzestem
Wege... Das hat leider nur einen Haken: Es stellt das umfangreiche
Fachwissen kryptischer, komplexer, bücherfüllender Hochsprachen so
mancher Experten hier furchtbar abscheulich infrage ;-(
Tut mir aufrichtig leid!
Es ist nicht unbedingt notwendig einen FPGA oder CPLD zu nehmen wenn es
ein 74er Logikbaustein auch tut. Das ist nicht unbedingt ein Vorteil.
Umgekehrt ist es selten geworden sich einen PC aus einzelnen
Logikbausteinen (TTL-Grab) aufzubauen. Der Raum zwischen diesen Extremen
ist groß und die Grenzen nicht scharf.
Carsten R. schrieb:> Umgekehrt ist es selten geworden sich einen PC aus einzelnen> Logikbausteinen (TTL-Grab) aufzubauen.
Sicher. Nur bei der überwiegenden Mehrzahl der Bastlerprojekte hier
gilt:
Carsten R. schrieb:> Es ist nicht unbedingt notwendig einen FPGA oder CPLD zu nehmen> wenn es ein 74er Logikbaustein auch tut.
Das sehe ich auch so. Nur viele haben zuerst programmieren gelernt und
dann Mikrocontroller hinzugenommen. Da sattelt an nur ei Bedarf oder
interesse auf ASM. Da sind halt verschiedene Fraktionen.
Umsatteln oder eine weitere Sprache zu lernen ist auch etwas Aufwand und
beherbergt potentiell mehr Anfängerfehler. Ob sich das lohnt um die
Sprache zu nutzen die für die jeweils aktuelle Aufgabe am Besten
geeignet wäre?
Ohne nennenswerten Zwang gilt, was Karl Heinz schon sagte:
Karl Heinz schrieb:>> C, C++ oder ASM?>> was du kannst. Entscheidend ist nicht die Sprache, sondern dass man sie> beherrscht.