Bitte um Empfehlung uC

Am 13.08.2013 13:20, schrieb Dieter Wiedmann:

ich würde ebenfalls zum Tiny raten - vielleicht ja auch in C?

Reply to
Eric Brücklmeier
Loading thread data ...

Den Befehlssatz

formatting link
habe ich ja schon erwähnt, sich da einzuarbeiten ist nun wirklich nicht das Problem. Wenn ich mich recht entsinne, waren Kunststudenten die Zielgruppe dieses Projektes... ;o)

Aber das Beste überhaupt - der Arduino-Uno kann 12.5 V! Spannungsversorgung entweder über USB-Anschluss, oder mit 12V über die DC-Buchse. :o)

Reply to
Edzard Egberts

Noch mal danke für die Ratschläge.

- Das Pollin-Board kann ich nicht gebrauchen, ich habe nur wenige qcm Platz für die Platine. Zum Ausprobieren, bis es klappt, sollte meine normale Testumgebung (Steckbrett etc.) ausreichen.

- Daß es einfache q&d-"Programmierer" geben soll habe ich gelesen; das sollte es eigentlich tun. Ich habe genügend alte PCs mit DOS und Win98 und Parallel- und Seriell-Port, daran sollte es nicht scheitern.

- Mit PICs habe ich schon "passive" Erfahrung gesammelt - Physische Programmierung (also nicht Programmentwicklung) des 16F84 und mit "fertigen" Binärprogrammen, davon habe ich auch noch einen Programmierer für die serielle Schnittstelle übrig. Von daher stammt auch mein Eindruck der "trickreichen" Assembler-Programmierung. Im Vergleich mit 8088-Assembler, wo es keine Probleme mit dem Speicherplatz etc. gibt, muß man da schon ziemlich um die Ecke denken. Als "geradlinig" kommt mit die uC-Programmierung daher nicht vor. Als

8088-Assemblerprogramm - also etwa zum Laufen auf einem alten Laptop/PC mit Ansteuerung des Paralleports - wäre das Programm fast so simpel wie in Basic, aber ich habe früher auch viel 8088-Assembler programmiert, da müßte ich nichts mehr dazulernen.
Reply to
M.Dinsch

... Schnipp

Hallo,

als Hardware würde ich perönlich auf den Gnublin zurückgreifen. Der enthält ein komplettes Debian Linux und damit auch ein freies Basic. Es gibt diese Hardware msogar mit RTC und Netzanschluß. Kostet um die 70 Euro.

Jetzt keine Werbung aber ein Link:

formatting link

Da ist was zum Ansehen und überlegen.

Gruß

Manfred

Reply to
Manfred Kuhn

Am 13.08.2013 20:09, schrieb M.Dinsch:

Dafür gibts kostenlos Jal, ist ein bischen wie Pascal.

Gruß Dieter

Reply to
Dieter Wiedmann

Am Tue, 13 Aug 2013 13:12:52 +0200, meinte M.Dinsch :

Danke nochmals für die Ratschläge.

Das Pollin-Bord ist nicht geeignet. Ich habe nur wenige qcm Platz. Zum Ausprobieren sollten meine üblichen Hardware-Experimentalbretter ausreichen. Daß es einfache Programmierer geben soll habe ich gelesen. Da ich genügend alte PC mit DOS/Win98 und Parallel-/Seriellport habe dürfte dies nicht das Problem sein.

Früher habe ich einige Male PICs, z.B. 16F84, pyhsisch programmiert, also das fertige Binärprogramm reingequetscht, von daher habe ich noch einen PIC-Programmierer für den seriellen Port. Daher stammt auch mein Eindruck vom "um die Ecke programmieren" - aufgrund der allseitigen Beschränkungen kann man da nicht so geradlinig programmieren wie in

8088-Assembler. Ich habe früher (angefangen vor 20, 25 Jahren) viel 8088-Assembler programmiert (die PIC-Programme habe ich dennoch nicht recht verstanden, andernfalls würde ich dafür einen kleinen PIC nehmen), daher wäre die Realisierung des Programms in 8088-Assembler für den seriellen oder parallelen Port eines alten PC (von den Zufallszeiten abgesehen) kein Problem, fast so einfach wie in Basic. Ich würde mich hier auch nicht groß mit Interrupts aufhalten, das müßte ich auch erst wieder lernen, sondern q&d mit simplen Schleifen arbeiten. Das soll ja nur auf diesem uC in dieser Anwendung laufen.

Ich bin mir schon bewußt, daß es nicht mit dem einmaligen Einhacken des Codes getan ist sondern insbesondere wegen der Zufallszeiten und Zeitschleifen etwas experimentieren muß. Aber das ist kein Vergleich mit dem Erlernen einer neuen Programmiersprache und dem ganzen Drumherum. Aber den Arduino-Kram schaue ich mir dennoch mal an.

Aber ihr wißt vielleicht, ob ich diese Puls- und Pausenzeiten überhaupt mit Basic hinbekomme?

Reply to
M.Dinsch

Am 13.08.2013 20:31, schrieb M.Dinsch:

Kein Problem.

Gruß Dieter

Reply to
Dieter Wiedmann

"M.Dinsch" schrieb im Newsbeitrag news: snipped-for-privacy@4ax.com...

Schau doch mal hier

formatting link

bzw. hier

formatting link

Das ist simpel und preiswert und sollte allemal reichen

Gruß Jochen

Reply to
Jochen

Am 13.08.2013 20:31, schrieb M.Dinsch:

Bis auf das Platzproblem wäre die Beste Lösung (für nicht uC affine Bastler) ein Beagle Bone Black. Das Programm wären nur wenige Zeilen JavaScript Code. Auf dem BBB ist eine JavaScript Bibliothek, mit der man einfach die I/Os ansteuern kann. Wahrscheinlich kann man die Anforderung schon weitestgehend mit den Beispielprogrammen lösen. Ist zwar mit Kanonen auf Spatzen geschossen, aber bis auf die Pegelwandlung auf 12 V ist alles vorhanden und man kann programmieren wie auf einem Linux PC. Und bei einem Preis von 38 EUR ...

Gruß Rolf

Weiterführende Links:

formatting link
(Pseudo)Zufallszahlen in JavaScript
formatting link
Beispielprogramm LED blinken
formatting link

Reply to
Rolf Mennekes

Das war auch nur als Entwicklungsumgebung gedacht. Wenn das Programm steht kann der AVR dann ja verpflanzt werden. Das erleichtert den Start weil es Fehlerquellen ausschließt wenn man Neuling ist. Wenn es aber schon einen Programmierer gibt:

Basic für PICs scheint es zu geben. Schonmal danach geschaut? Deine Timings sind weder für PICs noch für Basic eine Herausforderung - ganz im Gegenteil.

Reply to
Clemens Waechter

Oh bitte. Das ist nicht nur mit Kanonen auf Spatzen geschossen, sondern mit Neutronenbomben auf Amöben.

Irgendein kleiner AVR oder PIC ist angemessen. Geht größenmäßig runter bis SOT23-6. Oder bastlerfreundlich in DIP-8. AVR ist tendenziell leichter zu programmieren. Hängt aber davon ab, was man an Ausrüstung hat. Oder borgen kann.

XL

Reply to
Axel Schwenke

M.Dinsch schrieb:

Ich verstehe die Bedenken, aus ihnen spricht die Erfahrung, dass Dinge, die als 'ganz einfach' dargestellt werden, für den Unerfahrenen gerne zu lästigen Zeitfressern werden können. Wenn man den Fehler gefunden hat, ist alles immer ganz einfach...

Um die Angst vor dem neuen Thema vielleicht etwas zu nehmen, hier ein möglicher Lösungsansatz.

- Herunterladen von WinAVR

formatting link
), Installation desselben

- Einrichtung eines 'Projekts' mit dem mitinstallierten 'Programmer's Notepad'

- Erstellung eines Makefiles mit dem mitinstallierten 'mfile'-Tool - hier wird der zu verwendende Microcontroller ausgewählt

- Erstellung eines Files 'main.c' mit dem Programmcode (s.u.

- Anwählen von 'Make all' im 'Programmer's Notepad'

- Programmieren der erzeugten HEX-Datein in den Controller

Hier mal ein Sourcecode, grob aufgeworfen, compilierbar und ungetestet. Ich hoffe, das nimmt dir die Angst vor dem 'unbekannten Wesen' C. Der vermutlich schwer verständliche Teil mit den Portbits muss in jeder Programmiersprache irgendwie erledigt werden, und bei einem Wechsel auf einen anderen Microcontroller angepasst werden. Die _delay_ms-Funktion, die in der Laufzeit-Blbliothek von WinAVR enthalten ist, erfordert, dass die Taktfrequenz des Microcontrollers im Makefile korrekt angegeben ist, sonst stimmen die Zeiten nicht. Auch diese Angabe ist bei jeder Programmier-/ Entwicklungsumgebung irgendwo erforderlich.

-------------------------------------------- #include #include #include

static inline void ausgang1_aktiv(void) { PORTB |= (1

Reply to
Peter Schneider

Korrektur:

sollte wohl ehr heissen:

t_zufall = (int) ((long) rand() * 3000 / RAND_MAX) + 2000;

Grund: rand() liefert einen 16-Bit-Wert, der bei Multiplikation mit 3000 hoffnungslos den mit 16 Bit darstellbaren Bereich verlässt. (long) und (int) sind sog. Typecasts, die den dahinterstehenden Wert in den angegebenen Datentyp umwandeln.

P.

Reply to
Peter Schneider

Oder davon, was man kennt. Ich habe die Mikrocontrollerei nunmal mit Arduino kennengelernt und war vom Start weg davon begeistert, was man mit recht kleinem Aufwand erreichen kann.

Dass es noch besser/einfacher/sonstwas geht, bestreite ich nicht.

Gruß

Gregor

Reply to
Gregor Szaktilla

U.a. aus dem Grund würde ich für einen der C eigentlich vermeiden will, Arduino empfehlen. Ein C-Profi sieht so einen Fehler natürlich schon auf Anhieb bevor er das Programm ausführt, entweder weil er ähnliche Fehler schon gemacht hat und daraus gelernt hat, oder weil er die Integer-Casting Regeln des 550 Seiten ISO-C-Standards auswendig kennt. Aber jemand der Basic mit Fließkommazahlen gewohnt ist, der sucht sich bei so einem Fehler einen Wolf.

Beim Arduino sieht die Zeile übrigens so aus:

t_zufall = random(2000, 5000);

Liefert einen Integer Zufallswert n mit 2000

Reply to
Frank Buss

Frank Buss schrieb:

Deine Abneigung deckt sich mit meiner. Die Umgebung macht einem den Einstieg etwas leichter, erschwert aber manche Dinge, die ohne sie einfacher lösbar sind. Und das Arbeiten damit lenkt das eigene Denken in Bahnen, die mit der 'echten Microcontrollerwelt' nur entfernt was zu tun haben.

P.

Reply to
Peter Schneider

Am 14.08.2013 02:33, schrieb Gregor Szaktilla:

Mir ist nichts bekannt, was für einen Anfänger "besser/einfacher/sonstwas" wäre.

Arduinos bekommt man bei ebay für unter 10,- ?. In der Software sind Beispiele dabei, anhand derer der OP sein Programm praktisch direkt schreiben kann. Das Programmiergerät ist im Arduino integriert, USB anschließen und fertig.

Ich verwende für meine Projekte WinAVR und für STM32 Eclipse.

Aber für einen Anfänger ist Arduino momentan wohl die beste Lösung.

Gruß

Stefan

Reply to
Stefan

Ja, hier:

formatting link

Wobei man da wieder gut sieht, daß sogar der Library-Code von der Hardware doch schon etwas entfernt ist. Auf einem Microcontroller ohne Hardware-Division (vermute ich mal) den Modulo-Operator zu verwenden, ist schon ziemlich naiv programmiert. Und warum werden nicht die ANSI-C Routinen rand/srand verwendet, sondern die Posix-Routinen random/srandom?

Aber generell sieht der Sourcecode sauber aus und das System ist durchdacht für den vorgesehenen Einsatzzweck, für Anfänger eine einfach zu verwendende Microcontroller-Umgebung bereitszustellen, wenn man nicht im Mikrosekundenbereich programmieren braucht.

--
Frank Buss, http://www.frank-buss.de 
electronics and more: http://www.youtube.com/user/frankbuss
Reply to
Frank Buss

Am 13.08.2013 23:09, schrieb Axel Schwenke:

Bei den Preisen für ein komplettes Arduino-Board und der Anforderung der einfachen Programmierung ist das IMHO eine geniale Lösung. Das Arduino-Board kannst Du einfach per USB an den PC hängen und programmieren, für einzelne Prozessoren benötigt man zumindest noch einen Programmierdongle für den ISP-Anschluß, die selbsgehäkelte Variante am LPT-Port funktioniert mit neueren PCs und Windosen eher schlecht bis gar nicht.

Bernd

--
Meine Glaskugel ist mir leider unvorhersehbarerweise vom Balkon gefallen. 
P.Liedermann in defa
Reply to
Bernd Laengerich

Am 13.08.2013 20:31, schrieb M.Dinsch:

formatting link

Reply to
Stefan

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.