Hey, zunächst: Ich hab keine Ahnung von Mikrokontrollern. Dennoch möchte ich einen Programmieren. Ebenso wie in diesem (Beitrag "Seminarprojekt Binäruhr, passenden µC gesucht") Thema beschrieben möchte ich eine Binäruhr bauen. Ich habe mir das so vorgestellt, dass ich am PC ein Programm schreibe, es auf den uC spiele und diesen dann in meine Schaltung stecken kann. Ideal wäre es natürlich, wenn der uC permanent mit dem PC verbunden wäre, damit man schnell etwas umschreiben kann (In-System-Programmierung?!), muss aber nicht unbedingt sein. Am Ende sollte er jedoch in der Schaltung mit eingelötet sein und über Netzspannung laufen. → Demnach suche ich einen Mikrokontroller, einen Programmer/Debugger(braucht man doch, oder?) sowie passende Software zum Beschreiben (fehlt noch etwas?). Ich wäre Euch extrem dankbar, wenn sich jemand finden würde, der mir einen kompletten Einkaufszettel mit Links auflisten könnte, sodass ich nach dem Kauf sofort mit der Arbeit beginnen kann. Das wars soweit von mir, ich hoffe es findet sich wer, der sich die Mühe machen würde. (Wieso ich nicht einen der im o.g. Thema beschriebenen uc/Programmer kaufe? Ist mit zu viel Bastelarbeit verbunden, beim Googlen nach "Arduino" gibt es auch wieder tausende Varianten, das Launchpad hat irgendwie kein USB-Ausgang, usw.. Wie gesagt habe ich null Ahnung von der Materie, daher verstehe ich manches nicht und es reicht mir ein komplett einfacher uC)
Auch wenn's dafür bestimmt gleich Haue gibt: Kauf Dir einen Arduino, Spiel damit rum und sammle Erfahrung.
Nehm dir einen Arduino Nano und gut ist. An Netzspannung wirst du keinen µC anschließen können!
Nimm kein Arduino. Kannst Du schon in C programmieren? Wenn nein, Visual Studio gratis runterladen und am PC mal programmieren.
Vermutlich kann er auch noch nicht C programmieren, und wenn ja, dann lediglich das nicht hardwarenahe C mit den Zugriffen auf Registern etc.
Er könnte die gefühlt 1000 Threads zur Freitagsfrage durchlesen...
Bastler schrieb: > Auch wenn's dafür bestimmt gleich Haue gibt: > Kauf Dir einen Arduino, Spiel damit rum und sammle Erfahrung. Stefan S. schrieb: > Nehm dir einen Arduino Nano und gut ist Wie oben schon gesagt, gibts tausende Ergebnisse beim Googlen nach Arduino.. Was genau brauch ich denn zusätzlich noch zum Arduino Nano? Stefan S. schrieb: > An Netzspannung wirst du keinen > µC anschließen können! Stimmt allerdings, meinte natürlich Batterie ö.ä. ^^
kopfkratz Und wieder ein Thema erneut aufgewärmt ... seufz Nagut dann mal wieder die gleiche Leier: 1. für das Projekt reicht JEDER µC also von 8bit bis 64bit 2. günstige µCs dafür wären ATMEL Tiny oder PIC 3. es gibt fertige Module wie Arduino(AVR/ARM), PICKIT usw. usf. die via USB programmiert werden können 4. ein USBASP-Clone kostet 5,- Euro, damit lassen sich AVRs via ISP programmieren 5. schau Dir die kleinen XMC-Module aus dem Wettbewerb an, die gibt's ab 6,- Euro und sind auch via USB programmier- und debugbar 6. wenn Du später größere Sachen machen willst wo z.B. Gleitkomma o.ä. vorkommen schau Dir die ARMs an wie z.B. den gerade erwähnten XMC von Infineon oder den größeren Arduino mit ARM statt AVR 7. für kleine Bastelprojekte die keinen "Smartphoneumfang" haben reichen idR die 8bitter von ATMEL und PIC vollkommen aus 8. als Einsteiger reichen einfache Programmer bzw. die günstigsten Fertigmodule aus P.S.: Welche Programmiererfahrung hast Du und in welcher Programmiersprache ? P.P.S.: Am weitesten verbreitet und daher fast in jedem Elektronikladen zu haben sind die AVRs und PICs
Falls es dir nur um besagte Binäruhr geht, dann frag doch mal den Autor des verlinkten Threads nach einer Einkaufliste. Möglicherweise schickt er dir sogar einen fertig programmierten MC gegen Unkostenerstattung.
16F59 + PICKIT3 Clone (Banggood.com) Super einfacher Mikrocontroller. Vielleicht noch ein Breadboard + Kabel + LEDs.
Hallo, Adruino ist wirklich ein heißer Tipp, weil er den Anfänger nicht gleich mit Komplexität niederknüppelt. Umsteigen kann man ja später auch noch, wenn man etwas Erfahrung gesammelt hat. Größter Vorteil : Alles (bis auf den Adruino selber) ist dabei oder kostenlos. Für richtige µCs ist folgendes sinnvoll: - STM32 discovery + Coocox - PIC + PICkit3 + MPLABX (Vorschlag : PIC24FV32KA301) - AVR (da kenn ich mich leider nicht aus) Alles drei macht Sinn, ist meiner Meinung nach eher eine Geschmacksfrage. Es gibt noch viele weitere (auch bessere), aber das oben ist dass verbreitetste bei den Bastlern - entsprechend findet man ausreichend Hilfe im Netz. Was als Anfänger sehr wichtig ist Meine Empfehlung: Adruino! Bei mir wars auch Adruino -> PIC24 / PIC32 (manchmal : STM32)
Harald schrieb: > Er könnte die gefühlt 1000 Threads zur Freitagsfrage durchlesen... Oder wenigstens das Tutorial: http://www.mikrocontroller.net/articles/AVR-Tutorial
Hi
>Und das MSP430 Launchpad wurde natürlich "vergessen".
Selbst ein 1MHz Z80 ist damit unterfordert. Wer bietet weniger?
MfG Spess
Bin zu jung dafür um etwas einfaches und älteres zu nutzen :-). Ein GAL mit ABEL oder HDL....
spess53 schrieb: > Selbst ein 1MHz Z80 ist damit unterfordert. Wer bietet weniger Hier zum Nachbauen.. http://www.intel.com/Assets/PDF/General/4004_schematic.pdf
Hannes Müller schrieb: > Was genau brauch ich denn zusätzlich noch zum Arduino Nano? Du brauchst noch die "Arduino-Software" (kostenlos, Open Source) passend zu Deinem Betriebssystem sowie ein USB-Kabel mit dem richtigen USB-Stecker. Ich glaube der Nano hat einen Mini-USB. Die Arduino-Software ist Java-basiert, also muß auf Deinem PC auch Java installiert sein. Ich wäre aber gerade als Anfänger vorsichtig mit dem "Nano" und würde Dir eher zu einem "Arduino UNO" bzw. kompatiblen Nachbau raten. Dem Nano fehlen nämlich auf seiner Mini-Platine einige Schutzdioden als Schutzmaßnahmen gegen statische Aufladung am USB und vor allem fehlt die "resettable Polyfuse" als Kurzschlußsicherung. Das "UNO" Board ist daher ein bisschen besser gegen typische Anfängerfehler geschützt als das "Nano" Board. Allerdings auch ein wenig teurer. Einen "Programmer" benötigst Du zum Einstieg nicht, denn alle Arduino-Boards haben einen "Bootloader" drauf, so dass Du Deine Programme direkt über das USB-Kabel auf das Board hochlädst. Wenn das Board später autark vom PC laufen soll, ziehst Du nach dem Hochladen des Programms einfach das USB-Kabel vom PC ab und versorgst das Board entweder: a) Mit einem USB-Ladegerät oder b) Einem 6-12 Volt Netzteil Der UNO hätte übrigens für die Versorgung nach b) auch gleich eine Netzteilbuchse on Board.
Nimm Arduino, und leg Dir ein gutes Buch dazu zu. Da gibts bestimmt eines dass es so erklärst wie Du es optimal verstehst. Das ergibt sich einfach aus der Masse an Büchern und Internetseiten. Bedenke, Computer zu programmieren ist etwas das man lernen kann und muss. Mikrocontroller sind kleine Computer die unter Umständen sehr schön den Spaßfaktor bringen können. Sprich Du machst was und siehst das Ergebnis relativ schnell. Früher war das übrigens viel einfacher. Da hat man einen Computer angeschlossen, eingeschaltet und sofort war ein BASIC Interpreter da. Dieser Interpreter war in der Lage Befehle sofort ausführen zu können. Man konnte die somit einzeln durchprobieren.
Christian Berger schrieb: > Früher war das übrigens viel einfacher. Da hat man einen Computer > angeschlossen, eingeschaltet und sofort war ein BASIC Interpreter da. > Dieser Interpreter war in der Lage Befehle sofort ausführen zu können. > Man konnte die somit einzeln durchprobieren. Ah, python ist bekannt?
Hannes Müller schrieb: > Ideal wäre es natürlich, wenn der uC permanent mit dem PC verbunden > wäre, damit man schnell etwas umschreiben kann > (In-System-Programmierung?!), Ist mit dem PICkit3 möglich, Debuggen auch. > Ich wäre Euch extrem dankbar, wenn sich jemand finden würde, der mir > einen kompletten Einkaufszettel mit Links auflisten könnte Software: - MPLAB X IDE: http://www.microchip.com/pagehandler/en-us/family/mplabx/ - XC8 Compiler: http://www.microchip.com/pagehandler/en_us/devtools/mplabxc/ Hardware: - PICkit3 oder Colne, die Clones sollen auch ganz gut sein: Beitrag "Pickit 3 - Clone - kompatibel?" Gibt's z.B. hier http://www.microchipdirect.com/ProductSearch.aspx?Keywords=PG164130 http://www.conrad.de/ce/de/product/708818/PICkit-3-In-Circuit-Debugger-Microchip-Technology-PG164130 oder bei vielen anderen Händlern - PIC18F25k22 http://www.tme.eu/de/details/pic18f25k22-isp/mikrocontroller-microchip-8-bit/microchip-technology/pic18f25k22-isp/# - Uhrenquarz http://www.tme.eu/de/details/32.768k-20ppm/quarzresonatoren-tht/iqd-frequency-products/# - Lastkondensatoren für den Quarz http://www.tme.eu/de/details/cm-22/kondensatoren-mlcc-tht/sr-passives/# - Spannungsregler http://www.tme.eu/de/details/lm7805ct/ungeregelte-spannungsstabilisatoren/fairchild-semiconductor/# - Entkoppelkondensatoren http://www.tme.eu/de/details/cm-100n/kondensatoren-mlcc-tht/sr-passives/# und http://www.tme.eu/de/details/tc-0.33_35/tantal-kondensatoren-tht/sr-passives/# - LEDs, z.B. diese http://www.tme.eu/de/details/led5-b-lc/led-dioden-tht-5mm/optosupply/osub5144a-hi/# - Vorwiderstände http://www.tme.eu/de/details/1_4w47r/kohlewiderstaende-tht-14w/royal-ohm/cfr0w4j0470a50/# - Stiftleiste für PICkit http://www.tme.eu/de/details/zl201-06g/stiftleisten-und-buchsen/connfly/ds1021-1_6sf1-1/# - Schraubklemme für die Versorgungsspannung http://www.tme.eu/de/details/dg126-5.0-2p14/klemmleisten-fuer-leiterplatten/degson-electronics/dg126-50-02p-14-00a/# - Taster http://www.tme.eu/de/details/dts63k/tact-pcb-mikroschalter/diptronics/dts-63k/# Ich hoffe ich habe nichts wichtige vergessen. Schaltplan: - http://www.mikrocontroller.net/attachment/214613/Binaeruhr.pdf PIC Tutorial: - http://pic-projekte.de/wordpress/?p=133
:
Bearbeitet durch User
Christian Berger schrieb: > Nimm Arduino, und leg Dir ein gutes Buch dazu zu. Da gibts > bestimmt > eines dass es so erklärst wie Du es optimal verstehst. Das ergibt sich > einfach aus der Masse an Büchern und Internetseiten. > > Bedenke, Computer zu programmieren ist etwas das man lernen kann und > muss. Mikrocontroller sind kleine Computer die unter Umständen sehr > schön den Spaßfaktor bringen können. Sprich Du machst was und siehst das > Ergebnis relativ schnell. > > Früher war das übrigens viel einfacher. Da hat man einen Computer > angeschlossen, eingeschaltet und sofort war ein BASIC Interpreter da. > Dieser Interpreter war in der Lage Befehle sofort ausführen zu können. > Man konnte die somit einzeln durchprobieren. Und das gibt's heute auch noch, moderner und viel schneller für 5 €: http://geoffg.net/micromite.html Das ist für Dich gut geeignet.
> 1. für das Projekt reicht JEDER µC also von 8bit bis 64bit > 2. günstige µCs dafür wären ATMEL Tiny oder PIC > 3. es gibt fertige Module wie Arduino(AVR/ARM), PICKIT usw. usf. die via > USB programmiert werden können > 4. ein USBASP-Clone kostet 5,- Euro, damit lassen sich AVRs via ISP > programmieren > 5. schau Dir die kleinen XMC-Module aus dem Wettbewerb an, die gibt's ab > 6,- Euro und sind auch via USB programmier- und debugbar > 7. für kleine Bastelprojekte die keinen "Smartphoneumfang" haben reichen > idR die 8bitter von ATMEL und PIC vollkommen aus > 8. als Einsteiger reichen einfache Programmer bzw. die günstigsten > Fertigmodule aus Mir ist klar, dass für meine Zwecke (fast) jeder uC ausreicht, nur soll ich aus tausenden Varianten wahrlos eine auswählen, die evtl. genau das nicht kann, was ich brauche? Ich benötige eine einfache Anweisung, keinen Rat á la "dies und das könnte man machen". Takao K. schrieb: > 16F59 + PICKIT3 Clone (Banggood.com) > Vielleicht noch ein Breadboard + Kabel + LEDs. DANKE! genau solche Kommentare habe ich mir erhofft.. Platine und Bauelemente habe ich. Was für ein extra Kabel benötige ich denn noch? > Meine Empfehlung: Adruino! > Bei mir wars auch Adruino -> PIC24 / PIC32 (manchmal : STM32) Mein Problem bei Arduino ist, dass ich nicht weiß, welchen. Wenn ich das richtig gesehen habe, gibt es dort auch viele verschiedene Varianten ("Yun", "Galileo", "Esplora", ..)
Nachtrag zu Beitrag "Re: Der totale Anfänger - auf der Suche nach einem Mikrokontroller" - Für den Anfang, könnte man auf einem Breadboard "rumspielen" http://www.tme.eu/de/details/wb-101/universalleiterplatten/wisher-enterprise/# - Die Schaltung könnte man dann auf Lochraster aufbauen http://www.tme.eu/de/details/re200-hp/universalleiterplatten/roth-elektronik-gmbh/# - Netzteil, z.B. diese hier: http://www.tme.eu/de/details/zsi5_1.2microusb/steckernetzteile/# Wenn ein 5 Netzteil verwendet wird, kann auf den oben genannten Spannungsregler verzichtet werden.
:
Bearbeitet durch User
Hannes Müller schrieb: > Mein Problem bei Arduino ist, dass ich nicht weiß, welchen. Eigentlich kannst Du jeden Arduino nehmen(ausser vielleicht den Mini, da braucht man noch den USB/UART Wandler) Also mein Einkaufslisten Tip: -Arduino Nano für ~10€(nimm 2 dann kannst du einen kaputmachen) -Steckbrett -LEDs (3 oder 5mm, eine Handvoll, Farbe nach Wahl) -passende Vorwiderstände (220Ohm, eine Handvoll) -Handyladegerät mit Mini-USB PC mit Internetzugang setze ich als gegeben voraus, ebenso Lötkolben, Lötzinn, Seitenschneider und ein paar Meter Klingeldraht. EDIT: und ein USB-Kabel PC-MiniUSB EDIT2: und ein paar Taster(ausführung nach geschmack) zum stellen der Uhr so, damit sollte (abgesehen vom Gehäuse) die Uhr komplett sein. Noch ein EDIT: Wenn Du Kompletsets magst und 6 Wochen Zeit hast dann vielleicht auch sowas: http://www.dx.com/p/diy-basic-starter-kit-for-arduino-deep-blue-multicolored-297567
:
Bearbeitet durch User
Hannes Müller schrieb: > Takao K. schrieb: >> 16F59 + PICKIT3 Clone (Banggood.com) >> Vielleicht noch ein Breadboard + Kabel + LEDs. > DANKE! genau solche Kommentare habe ich mir erhofft.. Platine und > Bauelemente habe ich. Was für ein extra Kabel benötige ich denn noch? > Hallo, Kabel braucht du nicht, nur eine 5-polige Stiftleiste. Der PIC + LEDs koennen auch durch das PICKIT3 versorgt werden, und der Chip ist 3 volt Kompatibel, z.B. Lithium batterie geht (2.0 - 5 volt) Der 16F59 kann eine LED matrix direkt ansteuern ohne extra Bauteile. Ausserdem ist er sehr einfach zu konfigurieren- es gibt keine "Pheripherals", nur Tristate setzen, das wars. Die chips (40 polig) kosten so ca. 1 Euro. Binaeruhr geht mit 32 KHz Quartz, auch wenn das Timing etwas knapp ist fuer das LED multiplexing. Bei Arduino musst du dich erst mal einarbeiten, in der Regel werden "libraries" verwendet. Das Datenblatt fuer den 16F59 ist nur 50 Seiten und nur 10 sind wirklich wichtig. Natuerlich muesstest du lernen den XC8 C Compiler und MPLABX zu verwenden, ist aber weitgehend intuitiv. Mit MPLABX kannst du den C source dann auch mit dem Singlestep Debugger austesten. Ansonsten wuerde ich "enhanced Midrange" 16F empfehlen, die muessen jedoch alle konfiguriert werden, z.B. A/D abschalten, und sich ueber Einstellungen im Konfigurierungswort Gedanken machen. Ich verwende viele unterschiedliche PICs z.B, auch PIC32; 16F54 etc (16F5x) immer mal gerne wieder wenn ich nur schnell etwas austesten will (ich mag steckbretter nicht so sehr). Arduinos gibts es mittlerweile fuer wenige Dollar und fuer das Geld ist mehr Speicher drauf, schon richtig, und die Platine schon fertig.
Schreiberling schrieb: > ... Umsteigen kann man ja später auch noch, > wenn man etwas Erfahrung gesammelt hat. Größter Vorteil : Alles (bis auf > den Adruino selber) ist dabei oder kostenlos. > > Für richtige µCs ist folgendes sinnvoll: > ... > ... > - AVR (da kenn ich mich leider nicht aus) Das scheint mir auch so. Warum willst du von Arduino auf AVR umsteigen? Die Arduinos sind AVR und lassen sich folglich auch wie AVR benutzen. Viele AVR lassen sich unter Arduino benutzen.
au mann, jede Woche dieselbe Scheiße, sind die Leute zu blöd die Suchfunktion zu benutzen, oder sind das Trolle?
Mike schrieb: > Die Arduinos sind AVR und lassen sich folglich auch wie AVR benutzen. Dann gib mal einem Arduino User einen AVR ohne Bootloader und ohne Bibliotheken... Kommt er damit zurecht?
:
Bearbeitet durch User
Hi, hier mein praktisch erprobter Tipp: *Besorg dir einen Atmega32 oder einen Atmega64 (die haben ordentlich Speicher on board). *Bau dir diese Programmierschaltung: http://www.rowalt.de/mc/avr/progd.htm (Die SP12-Hardware: ...) (dafür brauchst du auf jeden Fall einen Rechner/Schleppi mit Parallelport) *Lad dir das kostenlose BASCOM AVR runter, damit kannst Du für erste Gehversuche bequem in Basic programmieren Von Bascom aus kannst du direkt den SP12-Progger ansprechen. *Später besorgst du dir das kostenlose AVR-Studio4 von Atmel und programmierst dort in C - auf Dauer würde ich dann einen Progger wie den AVRISP MKII empfehlen (sehr zuverlässig, ca. 30 bis 40€) Wenn irgendwas nicht klappt auf dem Weg, machst du hier einen neuen Beitrag auf mit konkreter Problem-Beschreibung. Hier noch eine interessante Seite zum Thema: http://s-huehn.de/elektronik/avr-prog/avr-prog-alt.htm
foo schrieb: > Nimm kein Arduino. > > Kannst Du schon in C programmieren? > Wenn nein, Visual Studio gratis runterladen und am PC mal programmieren. Das ist sogar eine gute Idee, da kann er alles durch den Simulator laufen lassen und hat noch keine Kosten. Nebenbei kann er sich für einen µC (oder mehrere) entscheiden, sich anhand der Datenblätter schlau machen.
Hannes Müller schrieb: > Ich wäre Euch extrem dankbar, wenn sich jemand finden würde, der mir > einen kompletten Einkaufszettel mit Links auflisten könnte, sodass ich > nach dem Kauf sofort mit der Arbeit beginnen kann. Hier schon mal der Controller: http://www.ebay.de/itm/ATMEGA32-16PU-Atmel-Microcontroller-AVR-MEGA-DIP-40-/161288388647?pt=Bauteile&hash=item258d898027 (gibts bei der Bucht eventuell noch billiger, schau mal selber)
Die Welt geht vor die Hunde schrieb: > au mann, jede Woche dieselbe Scheiße, sind die Leute zu blöd die > Suchfunktion zu benutzen, oder sind das Trolle? Lol, es wurde auch schon mal deswegen gemeckert. Bist du zu blöd die Suchfunktion zu benutzen?
Ich blick nicht durch.. demnach ein paar kurze Verständnisfragen.. Zusätzlich zum PICkit3 bräuchte ich noch 'nen Board, auf das ich dann den uC raufstecken kann,oder? Wo stecke ich beim Arduino Uno (http://www.reichelt.de/Programmer-Entwicklungstools/ARDUINO-UNO/3//index.html?ACTION=3&GROUPID=2969&ARTICLE=119045&SHOW=1&START=0&OFFSET=500&PROVID=2257&ref=adwords_generic&>a=6038788710_20740391310&gkw=Exact_6038788710_arduino+uno&gclid=Cj0KEQjwmPKeBRCj4bOro6nBitABEiQABa2FJOs0Xjh1WMdOBlu1_9iy96sJO25AOBzDOs8Wp29UVNoaAqev8P8HAQ) den uC rauf? oder verwende ich den Uno als uC (hab gesehen, manche haben auf der Unterseite "Stacheln")? Wenn ja, dann ist dieser nicht für mich geeignet, da ich am Ende lediglich den uC ("kleiner schwarzer Kaste mit Stacheln") auf der Platine haben will Zum Verbinden mit dem PC benötige ich dann noch 'nen USB 2.0-Kabel A-Stecker auf B-Stecker, oder?
Hannes Müller schrieb: > Zum Verbinden mit dem PC benötige ich dann noch 'nen USB 2.0-Kabel > A-Stecker auf B-Stecker, oder? Das sind Probleme ... Ohne Kabel wird's wohl schwierig.
Hannes Müller schrieb: > Wo stecke ich beim Arduino Uno > den uC rauf? oder verwende ich den Uno als uC (hab gesehen, manche haben > auf der Unterseite "Stacheln")? Schau am besten mal auf arduino.cc nach. Da sind alle Produkte aufgelistet. Den UNO gibt es mit Mega328 in DIL und SMD (TQPF). Die DIL-Version ist gesockelt.
Hannes Müller schrieb: > Zusätzlich zum PICkit3 bräuchte ich noch 'nen Board, auf das ich dann > den uC raufstecken kann,oder? Wenn du willst, kannst du es so machen, ich würde aber empfehlen den µC direkt in der Schaltung zu programmieren. Ich habe es immer so gemacht, ich kann mir aber vorstellen dass man, vor allem als Anfänger, wahnsinnig wird, wenn man den µC jedes Mal zu Programmieren aus der Schaltung nehmen und in die andere Platine stecken muss. Bei dieser Schaltung wird das PICkit3 an J2 angeschlossen und dann kannst du den PIC direkt in der Schaltung programmieren: https://www.mikrocontroller.net/attachment/214613/Binaeruhr.pdf
:
Bearbeitet durch User
Wenn schon Arduino, dann Arduino Uno und zwar diese Version von Saintsmart. Den habe ich nach 3 Tagen im Briefkasten gehabt und der Preis ist auch ok. http://www.ebay.de/itm/DE-Lager-NEU-SainSmart-UNO-R3-Starter-Board-MEGA328P-AU-ATMEGA16U2-For-Arduino-/221210591650?pt=Wissenschaftliche_Ger%C3%A4te&hash=item33812dc1a2 Vorteil von diesem Arduino: Auf dem Board kann man von 5V auf 3,3V umstellen. Da ist dann so einiges an Peripherie anschliessbar was eben nicht mit 5V läuft. Programmieren würde ich den mit Bascom, LunaAvr oder in C. Von der Arduino-Sprache die Finger lassen.
Hannes Müller schrieb: > Wo stecke ich beim Arduino Uno > (http://www.reichelt.de/Programmer-Entwicklungstools/ARDUINO-UNO/3//index.html?ACTION=3&GROUPID=2969&ARTICLE=119045&SHOW=1&START=0&OFFSET=500&PROVID=2257&ref=adwords_generic&>a=6038788710_20740391310&gkw=Exact_6038788710_arduino+uno&gclid=Cj0KEQjwmPKeBRCj4bOro6nBitABEiQABa2FJOs0Xjh1WMdOBlu1_9iy96sJO25AOBzDOs8Wp29UVNoaAqev8P8HAQ) > den uC rauf? Es gibt UNO Boards mit gestecktem Controller und mit aufgelötetem SMD-Controller. Dein Link verweist auf ein Board mit aufgelötetem Controller. Ein Board mit gestecktem Controller wäre beispielsweise: eBay-Artikelnummer:231230461234 > da ich am Ende lediglich den uC ("kleiner schwarzer Kaste mit > Stacheln") auf der Platine haben will Mehrmals oder nur einmalig? Falls nur einmalig: Den Controller kannst Du auf einem UNO programmieren, dann dort herausziehen (nur bei gesockeltem Controller) und in eine eigene Schaltung einsetzen. Falls es mehrmalig vorkommt: In dem Fall besorgst Du Dir am besten gleich zwei UNO-Boards mit gesockelten Controllern. Oder ein Board und einen ISP-Programmer. Wenn Du Deine Controller nur "im Developer-Board programmieren" und dann entnehmen und in eine eigene Schaltung einbauen möchtest, kaufst Du nämlich danach am besten nicht immer neue Arduino-Boards aus denen Du die Controller entfernst, sondern dann kaufst Du danach "nackte" Atmega328 Controller, die Du dann in einem Arduino-Board nur zum Programmieren einsetzt. Und dazu würdest Du zwei UNO-Boards benötigen: Einen UNO, der als ISP-Programmer dient, und einen UNO mit eingesetztem fabrikfrischen Controller, der neu programmiert wird. Siehe hier: http://arduino.cc/en/Tutorial/ArduinoISP > Zum Verbinden mit dem PC benötige ich dann noch 'nen USB 2.0-Kabel > A-Stecker auf B-Stecker, oder? Ja, die UNO-Boards haben eine USB-B Buchse.
Hannes Müller schrieb: > da ich am Ende lediglich den uC ("kleiner schwarzer Kaste mit > Stacheln") auf der Platine haben will Da ist PIC+PICkit das richtige für dich. Du baust den µC in deine Schaltung ein, kannst ihn dann über PICkit programmieren und sobald das Programm im PIC ist läuft er ohne PICkit weiter.
Das gleiche funktioniert auch mit dem Arduino Nano. In die vorgesehene Schaltung stecken, über die Mini-USB Buchse programmieren. Wenn es läuft, USB-Kabel abziehen, fertig. Keine zusätzliche Hardware notwendig. Als Programmiersprache ist alles verwendbar das einen Code für den ATmega erzeugt.
Hannes, ich würde sagen: fang einfach an. Und ich würde zum Anfang den AVR empfehlen. Der hat eine große Community, einen guten Compiler (der vom PIC ist m.E. Pfusch, der macht ja schon bei einfachsten Sachen schlapp...) und vor Allem: Du bekommst die Controller an jeder Ecke. Aber vor Allem: fang an!
Nicht so lange überlegen. Einfach irgendeine Box mit Platine, Kabel und Entwicklungsumgebung kaufen. (Lothar hat recht - besser keinen PIC). Nach deinem ersten Projekt weißt du dann, welche Art von Controller und Entwicklungsumgebung zu deiner Vorgehensweise passt. So ein Ding kostet 20€. Einen Fehlgriff kann man als Lehrgeld verbuchen.
Lothar Miller schrieb: > der macht ja schon bei einfachsten Sachen > schlapp... Gibt's dazu auch konkrete Beispiele, oder ist das nur irgendeine in dem Raum gestellte Aussage? BTW: @hannes55: Solltest du die für AVR entscheiden, viel Spaß beim ersten verfusten µC!
:
Bearbeitet durch User
Takao K. schrieb: > Bei Arduino musst du dich erst mal einarbeiten, in der Regel werden > "libraries" verwendet. Um die Arduinos zu entmystifizieren: Die "libraries" sind ganz gewöhnliche Programmbibliotheken, auch wenn dieses deutsche Wort vielleicht etwas sperrig ist. Das Einarbeiten könnte mit irgendeinem der zahllosen in der Arduino-"IDE" mitgelieferten Beispiele und dessen Modifikation beginnen.
Wenn du dich nach diesem Projekt weiter mit µCs beschäftigen willst, dann hast du mit dem PICkit3 einem Programmer mit dem du so gut wie alle PIC Programmieren und Debuggen kannst, von den 8bit über die 16bit für digitale Signalverarbeitung bis zu den 32bit PICs. Außerdem habe PICs oft mehr Peripherie als entsprechende ATmegas. Finde mal einen ATmega mit Ethernet, einem integrierten OPV, Remappable Peripherals, Hardware RTCC,..
:
Bearbeitet durch User
Ich möchte dazu eine Spruch bringen: Hast du Tripper oder Schanker, bist du lange noch kein Kranker. Erst wenn die Pfeife qualmt und zischt, dann hat es dich erwischt. Will sagen, so schnell raucht da nichts und aus Rauchzeichen kann man gaaaanz viel lernen. In dem Sinne, hau rein!
Max H. schrieb: > Gibt's dazu auch konkrete Beispiele Ja, dort im Beitrag "Software Problem" Und zudem habe ich so einen ähnlichen Blödsinn mit dem PIC auch schon selbst erlebt. Solche Konstrukte muss ein Compiler mehr als 40 Jahre nach Einführung einer Programmiersprache einfach kennen und können...
:
Bearbeitet durch Moderator
Hannes Müller schrieb: > Ich wäre Euch extrem dankbar, wenn sich jemand finden würde, der mir > einen kompletten Einkaufszettel mit Links auflisten könnte, sodass ich > nach dem Kauf sofort mit der Arbeit beginnen kann. ganz schön verwöhnt :) Aber die Frage ist falsch gestellt. Es muss heißen: "Welchen uC/Compiler sollte ich nicht kaufen?" Das sollte deutlich nützlichere Antworten geben.
Lothar Miller schrieb: > Max H. schrieb: >> Gibt's dazu auch konkrete Beispiele > Ja, dort im Beitrag "Software Problem" > > Und zudem habe ich so einen ähnlichen Blödsinn mit dem PIC auch schon > selbst erlebt. > Solche Konstrukte muss ein Compiler mehr als 40 Jahre nach Einführung > einer Programmiersprache einfach kennen und können... Finde ich nicht gut wie du PICs hier bewertest, die Compiler werden regelmaessig ueberarbeitet. Der Beitrag bezieht sich auf den Uralt- Hitech C. Aktuell sind XC8, XC16 und XC32. Schon richtig, vor einigen Jahren konnte der 8bit Compiler nichtmal Zeiger richtig zusammenbauen wenn baseline PICs verwendet wurden. Die koennen halt nicht allzuviel mit dem Befehlssatz. Inzwischen gehts aber, manuell gings auch schon damals. Bei PICs geht die sog. ICSP Programmierung so: 5 Verbindungen vom PIC zu einer Stiftleiste, PICKIT3 aufstecken, PICKIT3 mit USB Kabel zum laptop etc. verbinden. MPLABX + XC8 installieren. Auf einer Arduino Platine sind jede Menge Bauteile drauf die du nicht unbedingt brauchst. Wie auch immer, Arduino + USBASP kann ich dir bald verkaufen...mir ist es letztendlich egal, auch wenn ich die selbst nicht verwende. MPLABX kannst du wohl nicht mit der Arduino Programmierumgebung vergleichen, oh ja, mal schoen was fuer Eclipse zusammenschustern, Helpfile gibts vielleicht auch, Auto complete, usw? Der Lernprozess ist schwieriger, auch wenn es eine gutes forum gibt wo einem u.U. schnell geholfen wird: arduino.cc
Takao K. schrieb: > Finde ich nicht gut wie du PICs hier bewertest, die Compiler werden > regelmaessig ueberarbeitet. Ich hätte das "ähnliche Problem" vor 2 Jahren und der verlinkte Thread ist noch wesentlich weniger alt. Ich habe jedesmal, wenn ich mit PICs zu tun habe, ein ungutes Gefühl...
Lothar Miller schrieb: > Takao K. schrieb: >> Finde ich nicht gut wie du PICs hier bewertest, die Compiler werden >> regelmaessig ueberarbeitet. > Ich hätte das "ähnliche Problem" vor 2 Jahren und der verlinkte Thread > ist noch wesentlich weniger alt. Ich habe jedesmal, wenn ich mit PICs zu > tun habe, ein ungutes Gefühl... Ich habe vor kurzem damit angefangen PIC32 zu verwenden, und es war kein Sprung ins kalte Wasser z.B. nix geht fuer 3 Stunden. Einfach 2 kleine Keramikkondensatoren direkt auf den SMD Adapter, das wars schon, blinkt eine LED mit 80 MHz. Mal kurz "PIC32 Timer" und "PIC32 Interrupt" gegoogelt, und ein paar Zeilen einkopiert, schon geht's mit Interrupt und Timer- sogar einfacher als bei 8bit, da nicht mehr im Datenblatt nachgeschaut werden muss. Habe mir gerade mal ein paar alte Assembler source codes angeschaut, z.B. 33K Byte fuer 16F630, einmal und nie wieder, zum Glueck auf C umgestiegen. ausserdem heute Abend die neueste MPLABX Software installiert 2.00 -> 2.15 + alle C Compiler neu installiert. Alte projekt Ordner alle in einen neuen kopiert. Fuer bestimmte PICs gibts jetzt sogar einen IO Konfigurator. Was natuerlich schon stimmt ist das du normalerweise teures Training brauchst um diese Technologie richtig zu verwenden, fuer Arduino gibts Hilfe umsonst auf Arduino.cc
Wenn du dann sowas oder aehnlich im Netz siehst, denkst du, O Gott, wie schrecklich, und das ist es auch- RISC Assembler sollte sich niemand antun um damit Anwendungen zu schreiben. Wurde aber oft gemacht und das meiste ist immer noch online mit Hinweisen auf 16F84 und 16F628, kannste sogar froh sein wenn es ueberhaupt einen source code gibt. Arduino war dann schon ein fortschritt, da weitgehend C verwendet wird. Zwischen einem Assemblerfrickler der mit einem selbstgebauten Programmer 16f84 Hacks macht, und jemand der modernes C fuer PIC32 verwendet befinden sich Welten, also nicht einfach alles was irgendwie was mit PIC zu tun hat gleichsetzen.
Takao K. schrieb: > RISC Assembler sollte sich > niemand antun um damit Anwendungen zu schreiben. Eine Investition, die sich in vielerlei Hinsicht auszahlt: Schnellstmöglicher, kleinstmöglicher, hardwaresparender Code mit maximaler Flexibilität und ohne viele künstliche Probleme die eine Hochsprache wie C mitbringt. Für den einen 'antun', für den anderen der Genuß totaler Programmiererfreiheit!
Moby schrieb: > Takao K. schrieb: >> RISC Assembler sollte sich >> niemand antun um damit Anwendungen zu schreiben. > > Eine Investition, die sich in vielerlei Hinsicht auszahlt: > Schnellstmöglicher, kleinstmöglicher, hardwaresparender Code mit > maximaler Flexibilität und ohne viele künstliche Probleme die eine > Hochsprache wie C mitbringt. Für den einen 'antun', für den anderen der > Genuß totaler Programmiererfreiheit! Grossspurige Antwort aber code sehe ich keinen, weder C, noch RISC, noch sonstirgendwas. Antworte doch einmal und haeng einen source an, gerne auch laenger, also ein richtiges Program was deine Handschrift zeigt. Damit beweist du dann, dass du mitreden kannst. Deine Antwort laesst mich dastehen als ob ich von RISC mal irgendwas gehoert haette es aber nicht richtig kapieren konnte und z.B. noch nie ein "richtiges" Assembler programm geschrieben habe. Haeuser werden heute auch aus Fertigteilen in wenigen Tagen montiert, nix mehr mit handgeschnitzt. RISC ist dann vielleicht sowas wie LEGO Teile, total flexibel, kannste ganz tolle Sachen bauen, und niemand hindert dich daran ein komplettes Wohnhaus aus LEGO zu bauen und das beste, sowas gibt es sogar.
Takao K. schrieb: > Grossspurige Antwort Nö. Alles Tatsachen. > Antworte doch einmal und haeng einen source an Hast recht. Werd mal eine Vorlage zum Einstieg für Einsteiger in Xmega mit Asm erstellen. > Haeuser werden heute auch aus Fertigteilen in wenigen Tagen montiert, > nix mehr mit handgeschnitzt. Da spielst Du auf den Zeitvorteil bei Hochsprachenprogrammierung an. Mit allen genannten Nachteilen allerdings... Und: dieser Vorteil schmilzt bei genügend Erfahrung und Systematik wie Schnee in der Sonne !
Moby schrieb: > Takao K. schrieb: >> Grossspurige Antwort > > Nö. Alles Tatsachen. > Ja das mag fuer dich so aussehen, weiss aber nicht wie lange du schon programmierst. >> Antworte doch einmal und haeng einen source an > > Hast recht. > Werd mal eine Vorlage zum Einstieg für Einsteiger in Xmega mit Asm > erstellen. > Am besten ein source der schon einige Jahre bei dir herumliegt und der "echt" ist, also eine richtige vollstaendige Anwendung. >> Haeuser werden heute auch aus Fertigteilen in wenigen Tagen montiert, >> nix mehr mit handgeschnitzt. > > Da spielst Du auf den Zeitvorteil bei Hochsprachenprogrammierung an. Mit > allen genannten Nachteilen allerdings... Und: dieser Vorteil schmilzt > bei genügend Erfahrung und Systematik wie Schnee in der Sonne ! Nicht richtig. Wenn du ein Assemblerprogram in C "nachschreibst", ist das Resultat meist 1/5 bis 1/10 der Zeilen, und meist recht einfache Ausdruecke. Was nun, Herr Baurat, wenn jetzt jemand in C 3 Ausdruecke in eine Zeile packt, und die auch noch super komplex sind? Also in etwa so dass das C source gerade noch so lesbar ist. Wie siehts dann mit dem Assembler Source aus, z.B. auf einem modernen 32bit Kontroller? Das kann selbst ein Profi nicht mehr ordentlich warten, ich unterstelle sogar, es ist weitgehend unmoeglich.
Takao K. schrieb: > Ja das mag fuer dich so aussehen, Das ist so. Takao K. schrieb: > Am besten ein source der schon einige Jahre bei dir herumliegt und der > "echt" ist, also eine richtige vollstaendige Anwendung. Sonst noch Wünsche? Warum sollte ich darauf angewiesen sein Dir irgendwas zu beweisen? Mit meinen Antworten mußt Du trotzdem leben ;-) Takao K. schrieb: > Wenn du ein Assemblerprogram in C "nachschreibst", ist > das Resultat meist 1/5 bis 1/10 der Zeilen, und meist recht einfache > Ausdruecke. C ist aufgeblasener Text. Damit brauchst Du mehr Seiten als mit Asm wenns einigermaßen lesbar bleiben soll und die Kernfunktionalität beschreibt. Und was sich wohl erst hinter den Ausdrücken verbirgt? Takao K. schrieb: > Was nun, Herr Baurat, wenn jetzt jemand in C 3 Ausdruecke in eine Zeile > packt, und die auch noch super komplex sind? Klasse für die Lesbarkeit! Da lob ich mir doch die simple Asm-Syntax ;-) Takao K. schrieb: > Wie siehts dann mit dem Assembler Source aus, z.B. auf einem modernen > 32bit Kontroller? Die sind ohnehin kaum Asm-geeignet und (auch) wegen dieses Nachteils kommen die für mich gar nicht erst in Betracht. Takao K. schrieb: > Das kann selbst ein Profi nicht mehr ordentlich warten, ich unterstelle > sogar, es ist weitgehend unmoeglich. Vermutlich... wobei das nicht an Asm liegt ;-)
z.B.
1 | {// copy data from the display buffer |
2 | cathode=cathodes[i]-1;portio=pin_port1[cathode]; |
3 | if(display_buffer[i]&v_shl)*portio&=pin_bit_reset1[cathode];else *portio|=pin_bit_set1[cathode]; |
oder noch besser (das soll jetzt witzig sein)
1 | #define p portio |
2 | #define c cathode |
3 | #define d dislay_buffer |
4 | #define pr pin_bit_reset1 |
5 | #define ps pin_bit_set1 |
6 | |
7 | {// copy data from the display buffer |
8 | c=cathodes[i]-1;p=pin_port1[c];if(d[i]&v_shl)*p&=pr[c];else *p|=ps[c]; |
Wieviele Assembler Zeilen brauchst du dafuer? ausserdem ist es Architekturneutral.
Also mehrere C-Zeilen in eine zu packen und jede Form von Übersichtlichkeit der Formatierungen und Blockstruktur zu missachten ist jetzt auch nicht so das Aushängeschild für C...
BastiDerBastler schrieb: > Also mehrere C-Zeilen in eine zu packen und jede Form von > Übersichtlichkeit der Formatierungen und Blockstruktur zu missachten ist > jetzt auch nicht so das Aushängeschild für C... Ich sehe das so wie mit Gewuerzen. Die richtige Menge und Abstimmung- es schmeckt exotisch, besser, das Gericht wird abgerundet- jenachdem. Wenn zuviel drin ist, stoert es, kann sogar alles verderben. z.B. weiss ich was der Code bewirkt, sogar ganz genau, und muss das Konstrukt einige Male wiederholen. Es bietet sich halt manchmal an, nicht unbedingt Bezeichner umzudefinieren, jedoch geeignete Befehle zusammezufassen in einer Zeile. Man sollte es halt nicht uebertreiben und z.B. alles umdefinieren, nur wenn es im Ausdruck oder einer Reihe von Ausdruecken mehrfach vorkommt, oder wenn du halt kein macro verwendest sondern es 50 mal ausschreibst (z.B. software definierte serielle Schnittstelle). Obfuscated C gibt es auch aber das wird wohl nicht in sog. Produktionscode verwendet. In der Mathematik wird ja gelegentlich durchaus auch substituiert (Einsetzunggleichungen), da es sonst zuviel Schreibarbeit wird und zu unuebersichtlich.
Takao K. schrieb: > Wieviele Assembler Zeilen brauchst du dafuer? Tu den komplexen ausdruck mal ordentlich auseinandernehmen und hinschreiben- (sorry, das wird dann wohl auch mehrere Zeilen benötigen),vielleicht hab ich demnächst genügend Langeweile das in Asm zu coden... Takao K. schrieb: > Die richtige Menge und Abstimmung- es schmeckt exotisch, besser, Abschreckung pur sind solche Konstrukte, würd ich mal sagen. Takao K. schrieb: > z.B. weiss ich was der Code bewirkt, sogar ganz genau, Aber ob noch in 5 Jahren? Takao K. schrieb: > da es sonst zuviel Schreibarbeit wird Das Gefühl hatte ich bei meinen früheren C-Versuchen ständig ;-)
Jürgen S. schrieb: > Hannes Müller schrieb: >> Wo stecke ich beim Arduino Uno >> > (http://www.reichelt.de/Programmer-Entwicklungstool...) >> den uC rauf? > > Es gibt UNO Boards mit gestecktem Controller und mit aufgelötetem > SMD-Controller. Dein Link verweist auf ein Board mit aufgelötetem > Controller. > > Ein Board mit gestecktem Controller wäre beispielsweise: > eBay-Artikelnummer:231230461234 Gibt es noch weitere Unterschiede zwischen dem gesteckten und aufgelöteten? Bei Amazon wurde der aufgelötete rund 10x so oft verkauft wie der gesteckte (beide Boards vom gleichen Händler). Und wenn ich den gesteckten uC aus dem Uno entnehmen und in eine Schaltung einlöten würde, im nächsten Projekt jedoch das gleiche Board wieder verwenden wollen würde, müsste ich dann einen uC mit Arduino Bootload (der z.B.http://www.amazon.de/ATmega328-mit-Arduino-Optiboot-Uno/dp/B00523G0AO ?)kaufen, oderrr?
Hannes Müller schrieb: > Und wenn ich den gesteckten uC aus dem Uno entnehmen und in eine > Schaltung einlöten würde, im nächsten Projekt jedoch das gleiche Board > wieder verwenden wollen würde, müsste ich dann einen uC mit Arduino > Bootload (der > z.B.http://www.amazon.de/ATmega328-mit-Arduino-Optiboot-Uno/dp/B00523G0AO > ?)kaufen, oderrr? Ja, oder wenn du das öfter brauchst doch einen Programmer besorgen. Allerdings hier kostet ein Mega328 mit Bootloader €2,80. https://guloshop.de/shop/Mikrocontroller:::3.html?XTCsid=7pm9s290976fvt8q4te3608it0
:
Bearbeitet durch User
Hannes Müller schrieb: > Gibt es noch weitere Unterschiede zwischen dem gesteckten und > aufgelöteten? Kommt drauf an, ob Du den "original UNO SMD" meinst oder eventuell ein anderes Design. Beim originalen UNO SMD besteht praktisch kein Unterschied zu den Boards mit SMD Controller und mit gestecktem Controller. Aber von Sainsmart gibt es ein leicht abweichendes Design, z.B. eBay #221210591650 Bei diesem Sainsamrt SMD-Design wird der zusätzlich gewonnene Platz auf der Platine genutzt, um zusätzliche männliche Pinheader zu platzieren, und es werden 8 Analogeingänge (statt normal 6 Analogeingänge) herausgeführt. D.h. Du kannst dann auf diesem SMD-Board dann zusätzliche 2 Pins nutzen, entweder als analoge oder digitale I/Os, die es im origialen Arduino Boarddesign nicht gibt. > Und wenn ich den gesteckten uC aus dem Uno entnehmen und in eine > Schaltung einlöten würde, im nächsten Projekt jedoch das gleiche Board > wieder verwenden wollen würde, müsste ich dann einen uC mit Arduino > Bootload (der > z.B.http://www.amazon.de/ATmega328-mit-Arduino-Optiboot-Uno/dp/B00523G0AO > ?)kaufen, oderrr? Genau, wenn Du nur ein einziges Board hast, den Controller in diesem Board programmierst, entnimmst und woanders einbaust, und dann danach "frischen Ersatz" für den Controller benötigst, dann mußt Du einen "Atmega328 mit Arduino-Bootloader" kaufen. Nur dann kannst Du direkt über das USB-Kabel wieder programme draufladen. Wenn Du "fabrikfrische" Atmega328 ohne Bootloader kaufst, dann benötigst Du entweder einen ISP-Programmer, um zuerst den Bootloader zu installieren. Du kannst mir einem "Arduino als ISP-Programmer" aber auch fabrikfrische Atmega328 (also ohne Bootloader) auf einem Breadboard flashen: http://arduino.cc/en/Tutorial/ArduinoISP Scrolle auf der Seite mal runter: Da ist eine Schaltung für "Atmega328 mit internem Takt" und eine Schaltung für "Atmega328 mit extermen 16 MHz Quarz" auf einem Breadboard aufgebaut. Der Sketch "Arduino as ISP" wird mit der Arduino IDE stets als Beispielprogramm für das Board mitgeliefert. D.h. solange Du ein einziges funktionierendes UNO-Board hast, kannst Du nur per USB-Verbindung dieses Board auch als ISP-Programmer verwenden und damit auf "fabrikfrische" Controller Software draufladen.
Hier mal Bilder von einem billig Arduino, und einem USBASP. Die Billig Platinen haben kein USB, brauchen also einen Programmierer. Von den USBASP habe ich einen ganzen Beutel hier. Mit PICs ist es schwierig zu beginnen fuer weniger als 50 dollar, mit Arduino gehts schon fuer 10 Dollar. Dabei hat ein Standard Arduino natuerlich keinen 8bit DAC, keinen OpAmp und kein software programmierbares Logikgatter. Es gibt snobs die geben 500 Euro fuer einen Kopfhoerer aus und fuehlen sich dann besser, es gibt auch Mitmenschen fuer die sind 50 Dollar viel Geld. Am Ende bekommt man oft das wofuer man bezahlt hat. Also ich sage eigentlich nicht, lass den Arduino und investiere in PICs, da ich z.B. auch Arduinos und USBASP verkaufe. Musst du halt mal hineinschauen bei Arduino.cc und sehen ob es dir passt, nett sind die schon und es gibt auch kein Getrolle. Auf dem Microchip forum findest du oft professionelle Anwender, die haben nicht immer Zeit und viel Geduld. Einfach mal vergleichen was da im Laufe einiger Tage so diskutiert wird.
Werd mir wohl 'nen gesteckten Arduino Uno kaufen. Laut Website hat dieser 14 digitale Pins, die als in- oder output genutzt werden können. Für meine Uhr benötige ich jedoch 17 Ausgänge (5 für h, 6 für m, 6 für s). Ist es möglich 3 der "Power" Ports als output zu definieren?
Wenn in der Dokumentation Zahlen genannt werden, so sind das meistens absolute Maximalzahlen: wenn Du das Programmieren abgeschaltet hast und eine Alutüte über Deinem Schädel und Deine Finger gekreuzt. Drum würde ich jetzt nicht davon ausgehen, dass man da doch noch ein paar IOs rausquetschen kann. Ein anderer Gedanke wäre zu überlegen, ob man wirklich so viele IOs braucht, oder ob man einen seriellen Weg findet, das ganze auf einem Pin zu regeln...
Was spricht nochmal gegen den Arduino Nano? Der hätte genügend Ausgänge (19), ist deutlich kompakter, steckbar und läßt sich auch per USB programmieren. Zu beachten wäre allerdings dass ein SMD AVR zwar bis zu 40mA pro Pin liefern kann, es aber noch eine weitere Grenze für den maximale Strom durch alle Pins zusammen gibt. 17*20mA wird er vermutlich nicht schaffen. Nähres weiß das Datenblatt.
Hannes Müller schrieb: > Werd mir wohl 'nen gesteckten Arduino Uno kaufen. Laut Website hat > dieser 14 digitale Pins, die als in- oder output genutzt werden können. > Für meine Uhr benötige ich jedoch 17 Ausgänge (5 für h, 6 für m, 6 für > s). Ist es möglich 3 der "Power" Ports als output zu definieren? Ein Arduino UNO hat 14 digitale I/O und 6 analoge I/O auf dem Board herausgeführt = zusammen 20 Pins. Alle Analog-Pins können bei den Atmega-Controllern wahlweise auch als Digital-Pins genutzt werden. Davon ab gehen im Regelfalls Pin-0 und Pin-1, das sind die seriellen RX/TX-Prins für den boardeigenen USB-Seriell-Adapter, so daß Du für Dein Projekt mit einem UNO-Board uneingeschränkt stets 18 Pins zur Verfügung hast. Für einen "nackten" Atmega328 ohne angeschlossenen USB-Seriell-Wandler stehen Dir auf jeden Fall 20 digitale Pins mit vollständiger Unterstützung durch die Arduino-Software zur Verfügung. Im übrigen gibt es durchaus Möglichkeiten, 17 LEDs mit weniger als 17 Pins anzusteuern. Zum Beispiel durch Multiplexing oder Charlieplexing.
Hannes Müller schrieb: > Und wenn ich den gesteckten uC aus dem Uno entnehmen und in eine > Schaltung einlöten würde, im nächsten Projekt jedoch das gleiche Board > wieder verwenden wollen würde, müsste ich dann einen uC mit Arduino > Bootload (der > z.B.http://www.amazon.de/ATmega328-mit-Arduino-Optiboot-Uno/dp/B00523G0AO > ?)kaufen, oderrr? Nein, du kannst deinen ersten Arduino auch als Programmierer für den zweiten programmieren.
Jürgen S. schrieb: > Bei diesem Sainsamrt SMD-Design wird der zusätzlich gewonnene Platz auf > der Platine genutzt, um zusätzliche männliche Pinheader zu platzieren, > und es werden 8 Analogeingänge (statt normal 6 Analogeingänge) > herausgeführt. D.h. Du kannst dann auf diesem SMD-Board dann zusätzliche > 2 Pins nutzen, entweder als analoge oder digitale I/Os, die es im > origialen Arduino Boarddesign nicht gibt. Vorsicht! Datenblatt lesen. Die beiden zusätzlichen Pin der SMD-Version des Mega328 sind nur als analoge Eingänge zu nutzen.
Hubert G. schrieb: > Vorsicht! > Datenblatt lesen. > Die beiden zusätzlichen Pin der SMD-Version des Mega328 sind nur als > analoge Eingänge zu nutzen. Vielen Dank für die Richtigstellung! Mein Fehler. Die beiden extra Pins der UNO SMD-Boards ADC6 und ADC7 können nur als Analogeingänge genutzt werden, aber NICHT wie die übrigen sechs ADC-Eingänge auch als digitale Ein- oder Ausgänge.
Jürgen S. schrieb: > Ein Arduino UNO hat 14 digitale I/O und 6 analoge I/O auf dem Board > herausgeführt = zusammen 20 Pins. > > Alle Analog-Pins können bei den Atmega-Controllern wahlweise auch als > Digital-Pins genutzt werden. > > Davon ab gehen im Regelfalls Pin-0 und Pin-1, das sind die seriellen > RX/TX-Prins für den boardeigenen USB-Seriell-Adapter, so daß Du für Dein > Projekt mit einem UNO-Board uneingeschränkt stets 18 Pins zur Verfügung > hast. Gut zu wissen, denn auf dem Datenblatt steht lediglich "Analog Input Pins:6" und "Digital I/O Pins:14 ". Reicht bei der Definition der ursprünglich analogen Input Pins als Output Pins das übliche "pinMode(A0, OUTPUT);"?
Kurze Frage noch zu später Stund: ist es möglich mit einem digitalWrite Befehl mehrere Pins (wohlmöglich auch aus einem Array) auf HIGH zu schalten?
Lass die digitalWrite Funktion weg und setz die IOs über das PORTx Register.
:
Bearbeitet durch User
Max H. schrieb: > Lass die digitalWrite Funktion weg und setz die IOs über das PORTx > Register. Danke für den Rat, nur war das keine Antwort auf meine Frage ..
Hannes Müller schrieb: > Kurze Frage noch zu später Stund: ist es möglich mit einem digitalWrite > Befehl mehrere Pins (wohlmöglich auch aus einem Array) auf HIGH zu > schalten? Dachte ich zunächst auch nicht, weil es in keinem Buch steht, aber auf Arduino.cc kannst du etwas unter "Port" finden. Aus dem Kopf weiß ich das nicht mehr. Das war unter anderem einer der Gründe wieso ich auf C umgestiegen bin.
Hannes Müller schrieb: > Kurze Frage noch zu später Stund: ist es möglich mit einem digitalWrite > Befehl mehrere Pins (wohlmöglich auch aus einem Array) auf HIGH zu > schalten? Nein, da braucht man mehrere. Mit einer schleife kann man dass mit dem array machen. Hannes Müller schrieb: > Max H. schrieb: >> Lass die digitalWrite Funktion weg und setz die IOs über das PORTx >> Register. > > Danke für den Rat, nur war das keine Antwort auf meine Frage .. Doch, das war es: alle acht bit von PORTx stehen für acht io-pins, damit können also mehrere pins gleichzeitig gesetzt werden.
Hannes Müller schrieb: > Max H. schrieb: >> Lass die digitalWrite Funktion weg und setz die IOs über das PORTx >> Register. > > Danke für den Rat, nur war das keine Antwort auf meine Frage .. Mit einem digitalWrite kannst Du nur einen einzelnen Pin zur Zeit setzen. Die Ausführung des Befehls auf den 16-MHz Boards benötigt ca. 4µs. Aus der Referenz des Befehls ist für mich nicht ersichtlich, wie man auch nur ansatzweise auf eine andere Idee kommen kann: http://arduino.cc/en/pmwiki.php?n=Reference/DigitalWrite Mehrere Pins gleichzeitig kannst Du über direkte Programmierung eines PORTx Registers setzen, und das ggf. auch sehr viel schneller als in 4µs, falls der zu setzende Pin bereits zur Zeit der Programmkompilierung feststeht.
Nur haben die heldenhaften Arduinoerfinder auf kein einziges Board die Portbezeichner geschrieben. Damit müsste man für jeden Portzugriff nachschlagen wo sich der Pin nun versteckt. Das macht die Arduino Boards sehr sehr unkofortabel. Das ganze System ist eine nette Idee. Bei der Umsetzung ist leider nicht nur ein grober Fehler unterlaufen (z.B. der verschobener Pinheader oder die ineffiziente, aufgeblähte Bibliothek (was mit gleichem Funktionsumfang deutlich besser gemacht werden hätte können)).
>Nur haben die heldenhaften Arduinoerfinder auf kein einziges Board die >Portbezeichner geschrieben. Damit müsste man für jeden Portzugriff >nachschlagen wo sich der Pin nun versteckt. Der Grund dafür ist die Hardwareabstraktion. Das Ziel ist, dass ein Programm auf allen Arduinos gleich gut läuft ( sowohl auf einem AVR als auch einem ARM ). Steuert man PIN0 an, geht das sowohl auf AVR, ARM oder PIC. >Das macht die Arduino Boards sehr sehr unkofortabel. Genau das Umgekehrte ist der Fall. >Das ganze System ist eine nette Idee. Bei der >Umsetzung ist leider nicht nur ein grober Fehler unterlaufen (z.B. der >verschobener Pinheader oder die ineffiziente, Das ist ein Verpohlungsschutz. >aufgeblähte Bibliothek Das ist der Abstraktion geschuldet. Sieh CMSIS bei ARM.
Hannes Müller schrieb: > Kurze Frage noch zu später Stund: ist es möglich mit einem digitalWrite > Befehl mehrere Pins (wohlmöglich auch aus einem Array) auf HIGH zu > schalten? Kurze Atwor: Nein
Steffen schrieb: >>Nur haben die heldenhaften Arduinoerfinder auf kein einziges Board die >>Portbezeichner geschrieben. Damit müsste man für jeden Portzugriff >>nachschlagen wo sich der Pin nun versteckt. > Der Grund dafür ist die Hardwareabstraktion. Das Ziel ist, dass ein > Programm auf allen Arduinos gleich gut läuft Hardwareabstraktion ja, aber der Rest ist einfach nur eine Behauptung von Dir. Was hat das Port-Mapping damit zu tun, wie "gut" ein Programm läuft? Da gehört bissl mehr dazu. >>aufgeblähte Bibliothek > Das ist der Abstraktion geschuldet. Sieh CMSIS bei ARM. Toll wie du alles weisst was auf der Packung steht.
Steffen schrieb: > Bei der >>Umsetzung ist leider nicht nur ein grober Fehler unterlaufen (z.B. der >>verschobener Pinheader oder die ineffiziente, > Das ist ein Verpohlungsschutz. Ist es nicht. Steffen hat damit recht, es ist ein Fehler. Das kannst du alles nachlesen. Sie haben den Fehler zu spät entdeckt, um ihn noch ändern zu können.
Meister Eder ... [x] wollte was ins Internet schreiben
avr schrieb: > Nur haben die heldenhaften Arduinoerfinder auf kein einziges Board die > Portbezeichner geschrieben. Korrekt. Die Arduino-Software ist bei Verwendung der Arduino-Komfortbefehle hardwareunabhängig. Entsprechend hardwareunabhängig sind die Pins auf den Boards beschriftet. Vom Prinzip her läuft daher dasselbe Arduino-Programm ohne jegliche Änderungen auf einem Atmega8 genau wie auf einem Atmega328 genau wie auf einem Atmega2560 genau wie auf einem SAM3X oder einem Intel Galileo. > Damit müsste man für jeden Portzugriff nachschlagen wo sich > der Pin nun versteckt. Wer z.B. aus aus Geschwindigkeitsgründen ein unter den verschiedenen 8- und 32-bit Arduino-Plattformen inkompatibles Programm schreiben und daher direkt auf die Controller-Register zugreifen möchte, kann das selbstverständlich tun und für jeden Portzugriff nachschlagen. Oder er legt sich eine Schablone neben die Tastatur, auf der das Pinmapping des von ihm gerade programmierten Boards steht. > Das macht die Arduino Boards sehr sehr unkofortabel. Die hardwareunabhängige Programmierung macht die Arduino-Boards sehr komfortabel. Und das dürfte im Endeffekt der Grund dafür sein, dass Arduino als Lehr- und Lernplattform für Einsteiger gewonnen hat. > Das ganze System ist eine nette Idee. Bei der Umsetzung ist leider > nicht nur ein grober Fehler unterlaufen (z.B. der verschobener Pinheader Der verschobene Pinheader ist natürlich Absicht, denn die Pinheader dienen zum Aufstecken von "Shields" in einem legoartigen Stecksystem. Der verschobene Pinheader verhindert ein versehentliches falsches Aufstecken von Shields bei denjenigen, die keine Hardware selberbauen, sondern lieber legomäßig steckbare Hardware fertig kaufem möchten. Wer selbst Prototypen und eigene Hardware designen mächte, der wird diese ja wohl nicht an die klobigen Developer-Boards des Arduino Stecksystems dranbauen wollen. Der packt dann eben auch noch den Controller mit in seine Schaltung und ist dann gar nicht mehr auf Developer-Boards angewiesen. > oder die ineffiziente, aufgeblähte Bibliothek > (was mit gleichem Funktionsumfang deutlich besser gemacht werden hätte > können)). Anfänger stehen bei den Arduinos völlig auf diese hardwareunabhängigen Bibliotheken. Manche der Anfänger sind regelrecht süchtig nach Bibliotheken und ziehen sich selbst für kleinste Hobbyprojekte zusätzlich zu den mitgelieferten Arduino Core-Libraries und den original mitgelieferten Libraries noch für jeden Furz eine neue Library in die IDE, selbst Libraries mit völlig hirnrissig geringem leistungsumfang. Aber was soll's: Kostet ja nichts und in der riesigen Arduino-Community gibt es garantiert jemandem, der einem anderen eine Library für irgendeinen Pipifax bereitstellt, solange jemand es gebrauchen kann. Bei den Libraries muß man ja nicht alles mitmachen, was irgendein Third-Party-Libraryprogrammierer anbietet, nur weil der Download kostenlos ist.
Jürgen S. schrieb: >> Das macht die Arduino Boards sehr sehr unkofortabel. > > Die hardwareunabhängige Programmierung macht die Arduino-Boards sehr > komfortabel. Meine Projekte sind auch hardwareunabhängig. So etwas nennt sich HAL und wird für jeden µC nur einmal geschrieben. Im Gegensatz zu den Arduino-Bibliotheken ist das sehr schnell. Sämtliche Portzugriffe werden über inline Funktionen realisiert. Aber auch die Arduino Bibliotheken könnten schnell sein. Aber aus irgendwelchen Gründen wollte man keine inline Funktionen verwenden, die der Compiler selbst auflösen kann. Und das ist nicht das einzige, was bei den Standardbibliotheken schlecht gelöst ist. Ich meinte keine Third-Party-Libraries. Mit unkomfortabel meinte ich die Tatsache, dass immer nur diese Nummern an den herausgeführten Pins stehen. Wenn sie zusätzlich noch die richtigen Bezeichner des Herstellers hätten, hätte ich mir vielleicht schon ein Arduino Board zu Entwicklungszwecken gekauft. Jürgen S. schrieb: > Der verschobene Pinheader ist natürlich Absicht, denn die Pinheader > dienen zum Aufstecken von "Shields" in einem legoartigen Stecksystem. Wie es schon geschrieben worden ist, war das keine Absicht. Da hilft es auch nicht wenn du aus dem Bug ein Feature machen willst. Und die 2 Sekunden um die korrekte Ausrichtung festzustellen wären bei einem ernsthaften Projekt nebensächlich. Der Verpolungsschutz ist bei diesen Boards einfach sinnlos.
>Wenn sie zusätzlich noch die >richtigen Bezeichner des Herstellers hätten, hätte ich mir vielleicht >schon ein Arduino Board zu Entwicklungszwecken gekauft. Naja, ich finde das kann man relativ einfach lösen. Z.B. in das C-File eine Beschreibung, in der die Ports den Arduino Pins zugeordnet werden. Die Beschreibung kann man in jedes Projekt kopieren. Oder man könnt sich einen Ausdruck machen, und neben das Board oder darunter legen ( wie oben schon beschrieben ). Oder man könnte Aufkleber machen und auf das Board kleben.
> Meine Projekte sind auch hardwareunabhängig. So etwas nennt sich HAL > und wird für jeden µC nur einmal geschrieben. Da fällt mir gerade ein: So was in der Art für Cross-Plattformentwicklung hatte ich vor 4 Jahren hier schon einmal angeregt: Beitrag "BIOS für Mikrocontroller"
avr schrieb: > Meine Projekte sind auch hardwareunabhängig. ist ja seltsam. Meine Projekte sind IMMER sehr hardwareabhängig. Genau genommen richtet sich die Hardware (und damit eben auch das Programm in einem µC oder die Programmierung eines CPLD) IMMER nach dem, was ich mir für das konkrete Projekt so vorgenommen habe. Bau doch mal ein Radio ohne HF-Teil, oder einen Frequenzzähler ohne irgendwas zum Zählen oder ein Thermometer ohne Temperaturfühler.. Was für seltsame Projekte hast denn du bloß? W.S.
avr schrieb: > Meine Projekte sind auch hardwareunabhängig. So etwas nennt sich HAL und > wird für jeden µC nur einmal geschrieben. Im Gegensatz zu den > Arduino-Bibliotheken ist das sehr schnell. Und wo kann sich die Community dein HAL-Projekt runterladen um es zu verwenden und zu erweitern? > Mit unkomfortabel meinte ich die Tatsache, dass immer nur diese Nummern > an den herausgeführten Pins stehen. Wenn sie zusätzlich noch die > richtigen Bezeichner des Herstellers hätten, hätte ich mir vielleicht > schon ein Arduino Board zu Entwicklungszwecken gekauft. Ach du liebe Guete. Du baust dir dein eigenes Framework, aber fuer einen Zettel mit dem Pin-Mapping eines Arduino-Boards reicht es nicht? Wie waer's mit: Liefere, nid Lafere!
chris_ schrieb: > Da fällt mir gerade ein: So was in der Art für > Cross-Plattformentwicklung hatte ich vor 4 Jahren hier schon einmal > angeregt: > Beitrag "BIOS für Mikrocontroller" Herrlich, diese Sammlung von Fehleinschaetzungen diverser Leute, die deine Ideen als Unsinn bezeichnet haben. Da sieht man mal wieder: Nicht auf Schwaetzer hoeren, sondern machen!
Quack schrieb: > Du baust dir dein eigenes Framework, aber fuer einen > Zettel mit dem Pin-Mapping eines Arduino-Boards reicht es nicht? Du hast es nicht verstanden. Die meisten Arduino Bibliotheken sind einfach schlecht. Daher setze ich sie auch nicht ein. So ziemlich jede nicht Arduinobibliothek ist performanter und schlanker. @W.S. Hör auf zu trollen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.