Forum: Mikrocontroller und Digitale Elektronik Absoluter Anfänger


von Carlo S. (carlo70)


Lesenswert?

Hallo Community, ich bin absoluter Neuling auf dem Gebiet der 
Microcontroller.
Ich komme aus der SPS Programmierung.
Habe mich seit ein paar Tagen in die Welt eingelesen und verstehe noch 
nicht viel.
Welche Typen und welche Programmiersysteme würdet Ihr denn empfehlen 
AVR,PIC?
Bis jetzt interessant finde ich LunaAVR   verstehe aber bis jetzt 
überhaupt nicht,
wie man Debugging auf der Hochsprachenebene macht ?? Man muß doch sehen 
was in dem Teil passiert. Muß  ich andere IDE’s benutzen oder geht das 
mit Microcontroller überhaupt ??
Für jeden Hinweis wäre ich sehr dankbar.

Vielen Dank im Voraus.

Carlo

von Sebastian S. (amateur)


Lesenswert?

Herr Fahrlehrer. Ich habe noch nie am Steuer gesessen. Bitte zeigen Sie 
mir, die man das Auto in Bewegung setzt und dann den Nürburgring 
durchfährt.

Andere Leute bevorzugen das Schritt-für-Schritt-Verfahren.
Es hat ein paar gravierende Vorteile, gegenüber dem 
Alles-auf-Einmal-Verfahren.

Trotzdem ein Tip:
Schau mal oben, links unter AVR nach oder unter
https://www.mikrocontroller.net/articles/AVR

Für den Anfang sollte das ausreichend Beschäftigung liefern.

von René H. (Gast)


Lesenswert?

Sebastian S. schrieb:
> Herr Fahrlehrer. Ich habe noch nie am Steuer gesessen. Bitte zeigen Sie
> mir, die man das Auto in Bewegung setzt und dann den Nürburgring
> durchfährt.

Was ist Dir denn über die Leber gekrochen? Seine Frage ist doch völlig 
legitim und nicht zu hoch gegriffen!

Grüsse,
René

von hinz (Gast)


Lesenswert?

Carlo S. schrieb:
> Welche Typen und welche Programmiersysteme würdet Ihr denn empfehlen
> AVR,PIC?

Jehowa!


SCNR

von Carlo S. (carlo70)


Lesenswert?

Hallo Sebastian und „Hinz“

Ich verstehe nicht wirklich , warum Ihr euch auf den „Schlips“  getreten 
fühlt.
Die Frage war doch nur, ob es Systeme mit Hochsprachendebugging gibt, da 
ich
nicht die Absicht habe ein paar LED’s blinken zu lassen, wenn ich mein 
Projekt mit
Microcontroller realisieren sollte.
Ich kann mir nicht vorstellen dass man komplexe Aufgaben ohne Fehler 
programmiert und
Somit ohne sinnvollen Debugger zeitnah zu einem Ergebnis kommt.
Eine sinnvolle Antwort würde mich erfreuen.

Vielen Dank im Voraus.

Carlo

von nur zufällig hier (Gast)


Lesenswert?

Man programmiert die Aufgabe nicht in eines durch, insbesondere nicht 
wenns komplexer wird.
Man zerlegt die Aufgabe in Funktionen, Prozeduren und Klassen.
Ferner kommt man mit Debugmeldungen (z.B. Textausgaben auf den 
Seriellport) schon sehr weit.

Debugger ist erstmal nicht wirklich wichtig, aber natürlich trotzdem ein 
gutes Werkzeug.


Mein Tipp, Arduino fur 2,50€ kaufen und erstmal irgendwas machen.

von Einer K. (Gast)


Lesenswert?

Natürlich gibts das!
z.B. für AVR und SAM das Atmel Studio
So gibts für eigentlich jeden µC sein eigenes und Eclipse+gdb für alle.
Naja...

Aber irgendwie macht ein Hardwaredebugger wenig Spaß auf µC.
Die ganze Peripherie, und das Zeitverhalten, spielt einem gern Streiche.

Carlo S. schrieb:
> Ich kann mir nicht vorstellen dass man komplexe Aufgaben ohne Fehler
> programmiert und
> Somit ohne sinnvollen Debugger zeitnah zu einem Ergebnis kommt.
Tja...
Dann steht dir ja noch eine Einsicht bevor....

von Thomas E. (picalic)


Lesenswert?

Carlo S. schrieb:
> Bis jetzt interessant finde ich LunaAVR

Davon habe ich keine Ahnung. Ich verwende an der Arbeit Keil Microvision 
zum Programmieren von STM32-Controllern in C, und privat MPLAB X zum 
Programmieren von kleinen PICs. In beiden IDEs kann man natürlich die 
C-Programme auf Quelltextebene debuggen und Variablen und 
Registerinhalte anschauen und ggf. auch ändern. Mit AVR-Studio habe ich 
auch schon gearbeitet, auch da geht das Debuggen natürlich auf 
"Hochsprachen-Ebene". Beim MPLAB debugge ich meist zunächst mit dem 
Simulator. Die Hardware der PICs wird zum größten Teil auch vom Sim 
unterstützt, und inzwischen kann man da auch im "Logic Analyzer" Fenster 
mit zwei Cursorn Zeiten abmessen.

von Gerhard O. (gerhard_)


Lesenswert?

Auch wenn oft geschriehen wird wie "unsauber" das Programmieren mit 
Arduino sein kann, möchte ich jetzt trotzdem mutig Arduino vorschlagen. 
Für die ersten Schritte bekommt man ohne große Kosten ein vollständig 
funktionales uC "Entwicklungssystem".

Die IDE installiert in der Regel ohne besondere Probleme, jeder PC oder 
Mac kann verwendet werden und die Arduino AVR Bords sind erschwinglich. 
Trotz des kontroversen Rufs wird mit dem C/C++ GCC Compiler gearbeitet 
und Umsteigen ist später nicht so schwer. Dazu kommt, daß es unzählige 
funktionierende Beispiele gibt, die am Anfang vermeiden mit 
frustrierenden Problemen stecken zu bleiben. Erst wenn man ein genügend 
Maß Erfahrung hat, lernt man bei der Fehlersuche. Am Anfang sollen 
zumindest die bekannten Sachen anstandslos funktionieren. Da alle 
Bibliotheken in C/C++ geschrieben sind kann man die gesammten Quellen 
studieren. Zuletzt existiert eine gewaltige User Community. Probiers aus 
um Dir ein Bild zu machen und ich glaube Du wirst es nicht bereuen.

Da Arduino Bords auf AVR aufbauen lassen sie sich generell auch 
anderweitig einsetzen und sind kein rausgeschmissenes Geld.

Arduino ist ähnlich wie ein Hersteller "Referenz Design". Die 
mitgegebenen Beispielsprogramme und Bords funktionieren in der Regel auf 
Anhieb. Am Anfang ist das ein nicht zu unterschätzender Vorteil.

STM32 ist für den Anfang einfach im Detail viel zu kompliziert. Nicht 
schwer, aber zu viele Bäume um den Wald zu empfinden. Das sollte man 
sich nicht antun.

Man kann auch mit Arduino sauber programmieren. Registerzugriffe, 
Interruptbetrieb u.v.a. sind genauso wie woanders möglich.

Das wäre halt mein möglicher Vorschlag.

Grüße,
Gerhard

: Bearbeitet durch User
von Carlo S. (carlo70)


Lesenswert?

Hallo   „nur zufällig hier“, Arduino Fanboy, Thomas Elger und Gerhard O.
Nachdem ich am Anfang über die ersten Reaktionen enttäuscht war bedanke 
ich mich bei euch über eure Hinweise.
Ich muss mich noch weiter einarbeiten und werde eure Meinungen in meine 
Entscheidung einfließen lassen.
Ich komme halt aus einer anderen Welt (SPS) wo ich seit 25 Jahren 
professionell arbeite.
Bei der SPS Programmierung  sehe ich halt in jeden Moment im Ablauf des 
Programm’s was das Teil gerade macht.
Deshalb habe ich mir vorgestellt das auf Microcontroller portieren zu 
können.
Ob da meine Ansätze richtig sind, wird sich zeigen.

Carlo

von N2 (Gast)


Lesenswert?

Hi,

Meine Meinung: Für alles ohne (RT)OS braucht man keinen Debugger.

Der Chip soll ja was machen mit den Interfaces. Und ein Scope und 
Mulimeter und serielle Konsole hilft Dir da mehr...

Weil die Aufgabe eher lautet: Wie konfiguriere ich meine Hardware 
richtig ?

Da hilft kein Debugger, sondern nur Verständnis Deines uC. Was ist ein 
Stack Overflow? Warum springt das Ding x mal in den Interrupt ? Warum 
sind die ADC Werte so bescheiden? Wieso macht der jetzt wieder nen Reset 
?

Die Programme sind nicht so komplex.
Wenn doch: Am PC den Algo testen...

Wenn Du programmieren kannst und den uC kennst, kannst Du 90% 
funktionierenden  Code nur anhand der Datenblätter der 
Aktuatoren/Sensoren schreiben.

Gruß B2

von Lothar (Gast)


Lesenswert?

Carlo S. schrieb:
> wie man Debugging auf der Hochsprachenebene macht

Mit einem Hardware-Debugger. Am günstigsten ist ein 
Mikrocontroller-Board mit integriertem Debugger. Wie schon ausgeführt 
ist es mit einem 8-bit Mikrocontroller einfacher einzusteigen. Hier mal 
als Beispiel günstige Boards für 8-bit und 32-bit, beide mit demselben 
Debugger. Keine weitere Ausstattung erforderlich.

https://de.rs-online.com/web/p/products/9140107/
https://de.rs-online.com/web/p/products/8725700/

Du kannst Dir auch vorab die Software ansehen. Wenn Du auf dem PC Visual 
Studio oder Eclipse kennst, ist es sehr ähnlich.

https://www.silabs.com/products/development-tools/software/simplicity-studio

Wie auch schon ausgeführt, gibt es beim Debuggen von Mikrocontroller 
ähnliche Probleme wie auch bei PC Programmen. Der Debugger lässt das 
Programm langsamer laufen, somit wird das Timing anders. Wenn Du 
Kommunikation wie UART oder USB verwendest, wird es zum Timeout kommen. 
Also nach dem Debuggen immer noch das Release ausführlich testen.

nur zufällig hier schrieb:
> Arduino fur 2,50€ kaufen und erstmal irgendwas machen

Das geht natürlich auch :-)

von Carlo S. (carlo70)


Lesenswert?

Hallo Lothar,

wenn das Debuggen das Timing verändert ist es nicht gut. In meiner Welt 
(SPS) werden
die Daten in Echtzeit in der SPS gespeichert oder über Ethernet 
„weggeschoben“ aber
vielleicht ist ne SPS auch „langsamer“ . Auf alle Fälle kann ich bei 
UART oder TCP/IP -
Kommunikation sehen , was passiert.
Einen kleinen AVR oder PIC habe ich schon vor 20 Jahren programmiert und 
somit kann ich die 2,5 €
sparen. Ich habe halt jetzt ein Projekt wo aus der Stückzahl der Geräte 
ein Microcontroller wahrscheinlich angebracht wäre anstatt eine SPS zu 
nehmen.

Carlo

von Lothar (Gast)


Lesenswert?

Carlo S. schrieb:
> wenn das Debuggen das Timing verändert ist es nicht gut

Das lässt sich gar nicht vermeiden. Wenn der Mikrocontroller im Release 
mit 100 MHz läuft, kann er im Debug vielleicht mit 4 MHz laufen. Das ist 
halt entsprechend zu berücksichtigen und zu Testen, indem im Release 
Testdaten über Terminal rausgeschrieben werden. Die einzige sehr teure 
Alternative ist Trace.

Aber wenn Du bei der SPS Debugging Step-by-Step machst, dann hängt doch 
auch das Timing? Abgesehen davon sind doch die meisten SPS 
Mikrocontroller.

> über Ethernet weggeschoben

Das gibt doch Latenz. Wir sind vor einiger Zeit von einer RS485 PC-Karte 
mit FPGA auf einen (teuren) industriellen Ethernet/RS485 Wandler 
umgestiegen. Latenz ging von 2us auf 200us hoch.

von Carlo S. (carlo70)


Lesenswert?

Hallo Lothar,
eine SPS hat eine völlig andere Philosophie,
da wird das Programm zyklisch durchlaufen, von Anfang bis Ende. Bis das 
Programm das nächste mal
abgearbeitet wird, hat der heute sehr leistungsfähige Prozessor Zeit die 
im Hintergrund „geloggten“
Daten über TCP an das Programmiergerät z.Teil auch über Hilfs-CPU’s  zu 
senden .
Da kann man zu jedem Zeitpunkt im Programm den Wert der Variablen sehen.

Carlo

von Thomas E. (picalic)


Lesenswert?

Lothar schrieb:
> Das lässt sich gar nicht vermeiden. Wenn der Mikrocontroller im Release
> mit 100 MHz läuft, kann er im Debug vielleicht mit 4 MHz laufen.

Das ist nicht richtig! Solange das Programm läuft, läuft es auch mit 
Debugger in original-Geschwindigkeit (jedenfalls kenne ich es so!). 
Erst, wenn das Programm z.B. durch Erreichen eines Breakpoints 
abgebrochen wird oder wenn man es im Einzelschritt durchsteppt, ist das 
Timing natürlich dahin.

Im übrigen verstehe ich die Aversion gegen Debugger hier von manchen 
Leuten nicht. Es ist ein Werkzeug, das natürlich auch seine Grenzen hat. 
Nicht alles muss immer in Echtzeit ablaufen, oder es ist schon oft sehr 
hilfreich, wenn man ein Programm an einer gewissen Stelle abbrechen und 
in die Variablen und Register (auch der Peripherie) schauen kann. Von 
pauschalen Aussagen wie "...braucht man keinen Debugger" halte ich gar 
nichts.

N2 schrieb:
> Da hilft kein Debugger, sondern nur Verständnis Deines uC. Was ist ein
> Stack Overflow? Warum springt das Ding x mal in den Interrupt ? Warum
> sind die ADC Werte so bescheiden? Wieso macht der jetzt wieder nen Reset
> ?

Tja, genau um solche Fragen zu ergründen, ist ein Debugger meist recht 
nützlich!

: Bearbeitet durch User
von Lothar (Gast)


Lesenswert?

Carlo S. schrieb:
> eine SPS hat eine völlig andere Philosophie

Wenn ich z.B. das hier lese, dann scheint das nicht so zu sein:

Das "Sampling trace" ist dasselbe wie das Mikrocontroller Trace. Und 
beim "Debugging" kannst Du einen Breakpoint im Programm setzen oder 
"Single step" machen. Dann steht das Programm und damit auch das Timing. 
Dann läuft der Tank über :-)

https://infosys.beckhoff.de/english.php?content=../content/1033/tcplccontrol/html/tcplcctrl_onlinedebug.htm&id=

> da wird das Programm zyklisch durchlaufen, von Anfang bis Ende

Nur im "Single cycle debug". Das geht beim Mikrocontroller Debug auch.

Oder siehst Du das anders?

Du kannst übrigens Mikrocontroller auch SPS-mäßig programmieren: mit 
LabVIEW oder Simulink. Das ist für einen Mikrocontroller Experten aber 
ganz furchtbar.

von Possetitjel (Gast)


Lesenswert?

Carlo S. schrieb:

> eine SPS hat eine völlig andere Philosophie,

Ja. <seufz>

> da wird das Programm zyklisch durchlaufen, von Anfang
> bis Ende. Bis das Programm das nächste mal abgearbeitet
> wird, hat der heute sehr leistungsfähige Prozessor Zeit
> die im Hintergrund „geloggten“ Daten über TCP an das
> Programmiergerät z.Teil auch über Hilfs-CPU’s  zu
> senden .
> Da kann man zu jedem Zeitpunkt im Programm den Wert der
> Variablen sehen.

Gibt's im Großen und Ganzen alles nicht. Vergiss den
gesamten Komfort, den Du von der SPS kennst.

Das einzige, was GANZ UNGEFÄHR vergleichbar ist, ist
das Lesen von Eingängen und Setzen von Ausgängen,
aber schon bei der Pufferung, die die SPS macht
(Prozessabbild der Eingänge/Ausgänge) ist Schluss.

Timer gibt es zwar, aber nicht in dem Sinne, in dem
die SPS das kennt.

Da das Prinzip der zyklischen Abarbeitung im Sinne der
SPS nicht bekannt ist, gibt es auch keine Unterstützung
für das gleichzeitige Steuern unabhängiger äußerer
Abläufe. Fortgeschrittene Programmierer beherrschen
dies zwar trotzdem, aber die Verwaltung dafür muss man
i.d.R. komplett von Hand bauen ("state machines").

Aktualisierung von des Programmes bei laufender
Programmausführung geht selbstverständlich auch nicht.
Dass während der Zeit, in der das Programm eingespielt
wird, alle Ausgänge auf ungefährliche Werte gesetzt sind,
liegt selbstverständlich vollständig in der Verantwortung
des Programmierers.

Debugging-Schnittstellen gibt es, die sind aber m.W.
hersteller- und baureihenspezifisch.

Das absurde an der Situation ist, dass der durchschnittliche
Mikrocontroller-Programmierer die SPS-Leute belächelt, weil
sie etwas derart rückständiges wie AWL verwenden müssen...

Ach ja, apropos: Wenn Du AWL gemacht hast, wird Dir die
Programmiersprache C gefallen -- die ist genauso unlesbar...

Der Fairness halber: Ein "nackter" Mikrocontroller ist
schneller. 10 Mio Maschinenbefehle je Sekunde sind auch
für kleine, stomsparende µC nicht exotisch.
Alles, was mit "normalem Zahlenrechnen" zu tun hat, geht
im µC viel einfacher.

von Possetitjel (Gast)


Lesenswert?

Lothar schrieb:

> Carlo S. schrieb:
>> eine SPS hat eine völlig andere Philosophie
>
> Wenn ich z.B. das hier lese, dann scheint das nicht
> so zu sein:

Oh doch.


>> da wird das Programm zyklisch durchlaufen, von
>> Anfang bis Ende
>
> Nur im "Single cycle debug".

Du verstehst es nicht: Das SPS-Programm wird (normalerweise)
STÄNDIG KOMPLETT zyklisch durchlaufen, OHNE UNTERBRECHUNG.

Da man (zumindest in AWL) m.W. nicht rückwärts springen
kann, können PRINZIPBEDINGT keine Blockierungszustände
auftreten.
"Warten" gibt es PRINZIPBEDINGT nicht -- es gibt nur den
Fall, dass ein "Timer" noch nicht abgelaufen ist. Und -- ja,
eine SPS kennt DUTZENDE Timer (wenn nicht noch mehr).

Da das Ganze letztlich eine spezielle Interpretersprache
ist, gibt es auch keine "Abstürze" im herkömmlichen Sinne.
Der logische Ablauf in bestimmten Funktionsbausteinen
kann falsch sein, dann macht ein Teil der Maschine etwas
Falsches, aber die anderen Teile der Maschine arbeiten
trotzdem korrekt.

Infolge des Interpretercharakters lassen sich Teile des
Programmes austauschen, WÄHREND DIE SPS ARBEITET und WÄHREND
DIE VON DER SPS GESTEUERTE MASCHINE LÄUFT! Im einen Durchlauf
des Zyklus wird halt der alte Funktionsbaustein benutzt,
dann wird intern irgendein Pointer umgestellt, und im nächsten
Zyklus wird der neue, geänderte FB ausgeführt. Kein Problem.

Die Abschätzigkeit, mit der auf die SPS-Leute herabgesehen
wird, ist (wenigstens was das Steuern externer Prozesse
angeht) VÖLLIG unberechtigt. Die µC-Fritzen lösen zu 80%
der Zeit Probleme, die eine SPS prinzipbedingt nicht hat.

von Walter K (Gast)


Lesenswert?

nur zufällig hier schrieb:
> Man programmiert die Aufgabe nicht in eines durch, insbesondere nicht
> wenns komplexer wird.
> Man zerlegt die Aufgabe in Funktionen, Prozeduren und Klassen.


Ein anschauliches Modell für objektorirntiere Programmierung ist die 
Großbaustelle BER.
Man zerlegt die Aufgaben, Kapselt die Dinge - und irgendwann verliert 
man den Kontrollfluss

von Lothar (Gast)


Lesenswert?

Possetitjel schrieb:
> mit der auf die SPS-Leute herabgesehen wird

Kenne ich so nicht. Gab doch sogar mal eine AVR Soft SPS:

http://www.microsps.com/

Aber Fakt ist, das komplexe Industrieanlagen z.B. in der 
Verfahrenstechnik, die statt nur PID-Regler auch MPC o.ä. brauchen mit 
einer SPS nicht zu realisieren sind.

> gibt es auch keine Unterstützung für das gleichzeitige Steuern
> unabhängiger äußerer Abläufe

Parallax Propeller, Multicore-Mikrocontroller z.B. LPC4370

> Aktualisierung des Programms bei laufender Programmausführung

Bei Multicore-Mikrocontroller geht das.

von Possetitjel (Gast)


Lesenswert?

Lothar schrieb:

> Possetitjel schrieb:
>> mit der auf die SPS-Leute herabgesehen wird
>
> Kenne ich so nicht. Gab doch sogar mal eine
> AVR Soft SPS:

Ja, ich weiss. Es gab immer mal wieder Anläufe;
etabliert hat sich m.W. keiner. (Leider.)


> Aber Fakt ist, das komplexe Industrieanlagen z.B. in der
> Verfahrenstechnik, die statt nur PID-Regler auch MPC o.ä.
> brauchen mit einer SPS nicht zu realisieren sind.

Eine SPS ist auch nicht primär ein (klassischer) Regler,
sondern ein Ding, mit dem man Ablaufsteuerungen realisiert.
Das schließt das Zusammenwirken mit (unterlagerten) Reglern
und mit übergeordneter Prozessleittechnik ein.

>> gibt es auch keine Unterstützung für das gleichzeitige
>> Steuern unabhängiger äußerer Abläufe
>
> Parallax Propeller, Multicore-Mikrocontroller z.B. LPC4370

Also bitte... bleib' doch ausnahmsweise mal ernsthaft.

Der prototypische Mikrocontroller ist auf µC.net ein AVR,
der in C programmiert wird.
Weder der AVR noch C haben IRGEND EINE Unterstützung für
das Steuern paralleler externer Prozesse. Es geht natürlich,
wenn man weiss, wie man einen endlichen Automaten programmiert,
aber ich sprach von UNTERSTÜTZUNG, nicht von "ist prinzipiell
machbar".


>> Aktualisierung des Programms bei laufender Programmaus-
>> führung
>
> Bei Multicore-Mikrocontroller geht das.

...die natürlich der Standard sind. Meine Güte.

von Harlekin (Gast)


Lesenswert?

Neben einem guten Debugger würde ich auf eine Entwicklungsumgebung 
achten, welche effizientes Kompilieren und Downloaden ermöglicht. 
Stichwort: In-system programming

Je nach Problemstellung helfen:
Logic Analyzer
Protokoll Analyzer
Oszilloskop
Multimeter

von Gerhard O. (gerhard_)


Lesenswert?

Eine Frage aus Kanada:

Seid ihr Frühaufsteher oder kommt das von Schlaflosigkeit.

Meine Güte, bei mir ist es 21 Uhr und man hört immer noch von Euch:-)

Beitrag #5358278 wurde vom Autor gelöscht.
von Carlo S. (carlo70)


Lesenswert?

Hallo Harlekin,
Deine Aussagen gefallen mir sehr gut. So würde ich es angehen wollen.
Aber an welche Technik (Debugger, Entwicklungsumgebung) denkst du da ??

Sollte man „alles“ in C machen ??

Carlo

von Pandur S. (jetztnicht)


Lesenswert?

> Leuten nicht. Es ist ein Werkzeug, das natürlich auch seine Grenzen hat.
Nicht alles muss immer in Echtzeit ablaufen, oder es ist schon oft sehr
hilfreich, wenn man ein Programm an einer gewissen Stelle abbrechen und
in die Variablen und Register (auch der Peripherie) schauen kann. Von
pauschalen Aussagen wie "...braucht man keinen Debugger" halte ich gar
nichts.


Man sollte sich das Arbeiten ohne Debugger angewoehnen. Es gibt 
Funktionalitaeten, die nicht in echtzeit ablaufen muessen. Wie zB 
Displayansteuerung. Das macht man jeweils einmal und verwendet sie in 
jedem Projekt gleich.
Echzeitprozess sollte man nicht anhalten muessen, und sollte auch so 
planen dass sie durchlaufen, auch im Fehlerfall. Denn bei einem 
Programmstop ist der Kontext kaputt. Im schlechteren Fall wird etwas 
zerstoert. Man stelle sich eine Liftsteuerung vor..

Es gibt viele Moeglichkeiten, wie man Echtzeitdebugging macht. Alle 
bedingen aber schon beim Design eingeplant worden zu sein.

Wenn ich Regelungsprozesse, die in einer Minutenzeitskala ablaufen, 
anschauen will, verwende ich Kommunikation zum PC. Im Sinne von, der PC, 
als Master darf Werte abfragen, die vorhanden sind. Oder schnell 
gerechnet werden koennen. Eine Kommunikationsschnittstelle sollte man 
sowieso eingeplant haben.
Wenn die Zeitskala kuerzer ist, plane ich einen SPI Stecker, wo ich im 
Bedarfsfall einen 8x8bit DAC aufstecken kann. Das Programm schreibt die 
Werte, die mich interessieren in den DAC, und ich kann mehrere Kanaele 
parallel mit dem Oszilloskop anschauen.

von Brrzzt (Gast)


Lesenswert?

Carlo S. schrieb:
> Hallo Sebastian und „Hinz“
>
> Ich verstehe nicht wirklich , warum Ihr euch auf den „Schlips“  getreten
> fühlt.

Elitäres Standesdünkel. Iiiiiiih, Anfänger mit Fragen. Ist hier normal, 
leider...

Ich würde dir empfehlen, mit AVR oder PIC anzufangen. Grund ist, dass 
die einfach sind.

Aus persönlicher Anschauung kann ich PIC24 empfehlen, hierfür benötigt 
man ein PICkit und MPLABX, sowie ein Steckbrett. MPLABX und Compiler ist 
frei verfügbar - die Einschränkungen des freien Compilers sind für 
Privatnutzer wenig problematisch.

Debuggen kann man damit einfach, indem man in C einen Breakpoint auf die 
entsprechende Zeile setzt, der PIC bleibt dann stehen, und du kannst dir 
die einzelnen Variablen ansehen. Du kannst ein Programm dann 
schrittweise fortführen, wenn du willst.

Wie am PC halt auch.

Ich persönlich empfehle den PIC24FV32KA301 als Einstieg.

Code-Examples für PIC24 findest du hier:
https://www.microchip.com/doclisting/TechDoc.aspx?type=CodeExamples

Ich kam aus der gleichen Ecke, also SPS. Hässliche IDEs mit seltsamen 
Bedienkonzepten bist du als SPS-Programmierer ja gewöhnt, eine gute 
Voraussetzung für µC-Programmierung, egal ob PIC, AVR oder STM32 ;-)

PS:
Damit will ich AVRs nicht abwerten - wie schon geschrieben habe ich halt 
mit den PIC angefangen.

von Walter K. (Gast)


Lesenswert?

Carlo S. schrieb:
> Sollte man „alles“ in C machen ??

Ich würde auf jeden Fall erstmal in und mit C beginnen.

Man kann nämlich ganz einfach mit wenigen Befehlen und Funktionen
ganz einfach und durchschaubar in C programmieren.

Natürlich kann ich mit Pointern komplexen Strukturen und wirren 
Funktionen aus komischen Inkludierungen C anfängerfeindlich, wie 
undurchschaubar machen.
Davon darf man sich aber nicht abschrecken lassen.
Ein paar Basics anlesen - und dann einfache Dinge mit wenigen 
Schlüsselwörtern und Funktionen machen.
Die Bibel ist noch immer :

Brian W. Kernighan, Dennis M. Ritchie
Programmieren in C ( ANSI Standard )
Mit dem C-Reference Manual in deutscher Sprache
Übersetzt aus dem Englischen von den Professoren Axel-Tobias Schreiner, 
Ernst Janich hervorragend und beispielhaft übersetzt!

Wie schon jemand hier schrieb, wenn Dir AWL nicht fremd ist - dann 
kommst
Du recht schnell in C ( möglicherweise auch in Assembler ) rein.

letztendlich wirst Du alle Dinge die Du aus der SPS kennst hier in der 
Mikro-Prozessor-Programmierung wiederfinden - und wirst auch SPS 
Eigenheiten besser verstehen lernen.

von M.A. S. (mse2)


Lesenswert?

Walter K schrieb:
> objektorirntiere

Wsa für Tiere?


Walter K schrieb:
> Man zerlegt die Aufgaben, Kapselt die Dinge - und irgendwann verliert
> man den Kontrollfluss
Ich bezweifele, dass Deine Analyse des Problems korrekt ist aber selbst 
wenn:
Ein schlechtes Design kann man mit JEDER Methode hinlegen, wenn man 
unbedingt will...



Zum BER:
Irgend ein Kabarettist sagte einmal sinngemäß:
Die Berliner kommen billiger zu einem Großflughafen, indem sie ihr 
Berlin abreißen und 1:1 am Flughafen Frankfurt Main wieder aufbauen. 
Naja...

Ist wohl die verdiente Rache für damals, als die ganzen Bonner sich 
schwergetan haben mit dem Umzug nach Berlin und wir gefrotzelt haben:
"...dabei haben wir Ihnen extra ihr Bonn 1:1 am Spreebogen nachgebaut."

: Bearbeitet durch User
von Thomas E. (picalic)


Lesenswert?

Sabberalot W. schrieb:
> Das macht man jeweils einmal und verwendet sie in
> jedem Projekt gleich.

Aber einmal muss man es halt auch mal schreiben. Wenn Ihr alle so 
perfekte Programmierer seid, die von vornherein keine Fehler machen, 
braucht Ihr da natürlich auch keinen Debugger für (und auch sonst 
nicht).

Sabberalot W. schrieb:
> Im schlechteren Fall wird etwas
> zerstoert. Man stelle sich eine Liftsteuerung vor..

Wenn da der "echte" Lift dranhängt, ist die Phase, wo man mit dem 
Debugger am JTAG- oder SW-Anschluss des µC hängt, hoffentlich schon 
vorbei...

: Bearbeitet durch User
von Harlekin (Gast)


Lesenswert?

Carlo S. schrieb:
> Aber an welche Technik (Debugger, Entwicklungsumgebung) denkst du da ??
Leider kann ich keine konkrete Vorschläge machen, da ich nicht auf dem 
aktuellen Stand bin.

Carlo S. schrieb:
> Ich habe halt jetzt ein Projekt wo aus der Stückzahl der Geräte
> ein Microcontroller wahrscheinlich angebracht wäre anstatt eine SPS zu
> nehmen.
SPS und Microcontroller kann man nicht so einfach miteinander 
vergleichen. Im Gegensatz zur SPS hat man beim Microcontroller keine 
fertige Hardware zur Verfügung. Deren Entwicklungskosten, Tests und 
Zertifizierungen müssen eingerechnet werden. Auch der 
Softwareentwicklungsaufwand wird höher sein. Darum empfehle ich, ein 
Lastenheft zu erstellen und damit bei einigen Spezialisten eine Offerte 
einzuholen. Das liefert eine gute Entscheidungsgrundlage.

von Walter K. (Gast)


Lesenswert?

M.A. S. schrieb:
> Irgend ein Kabarettist sagte einmal sinngemäß:
> Die Berliner kommen billiger zu einem Großflughafen, indem sie ihr
> Berlin abreißen und 1:1 am Flughafen Frankfurt Main wieder aufbauen.
> Naja...

Lach!

Ich wohne in der Nähe einer Strasse, die eine Länge von 140km hat, die 
von Koblenz quer übern den Hunsrück nach Saarburg geht ... und die vor 
ungefähr 80 Jahren in exakt 100 Tagen gebaut wurde (auch wenn 
interessierte Kreise nicht müde werden, zu betonen - sie sei ja nach 100 
Tagen noch nicht ganz fertig gewesen! - was auch stimmt, der einzige ( 
und für damalige Verhältnisse, fast schon revolutionäre) Kreisel war 
noch nicht bepflanzt!

von Pandur S. (jetztnicht)


Lesenswert?

>Sabberalot W. schrieb:
>> Im schlechteren Fall wird etwas
>> zerstoert. Man stelle sich eine Liftsteuerung vor..
>
>Wenn da der "echte" Lift dranhängt, ist die Phase, wo man mit dem
Debugger am JTAG- oder SW-Anschluss des µC hängt, hoffentlich schon
vorbei...

Es gibt aber immer ein Debuggen an der tatsaechlichen Hardware, am 
tatsaechlichen Prozess. Und das sollte man einplanen, dass dann eben 
nichts schieflaeuft.

von M. M. (blackcow)


Lesenswert?

Hallo Carlo

Ich würde dir empfehlen mit einem Atmega oder Attiny das Assembler 
Tutorial hier durchzuarbeiten und vll. ein eigenes kleines Projekt 
(nichts großartiges) damit machen. So bekommt man ein Gefühl wie ein 
Mikrocontroller intern funktioniert.

Dann würde ich relativ schnell auf C umsteigen. Damit kann man dann 
angenehmer übersichtlichere und größere Programme entwickeln.

Wenn du dann noch nicht genug hast wäre auf C++ aufzusatteln keine 
schlechte Idee. Die Sprache bringt viele angenehme Features mit sich. 
Allerdings sollte man dann schon eine Ahnung haben welches Feature wann 
Sinn macht und welches nicht (vor allem bei Mikrocontroller).

Als IDE kann ich AVR Studio empfehlen.

von Werner S. (wernertrp)


Lesenswert?

Hallo,

fange mit dem Arduino Board an und verlasse es nach 14 Tagen schnellst 
möglich wieder.

von Walter K. (Gast)


Lesenswert?

Werner S. schrieb:
> fange mit dem Arduino Board an und verlasse es nach 14 Tagen schnellst
> möglich wieder.

genau ...

und gewöhne Dich nicht an dieses Pseudo-C und die Pseudo-IDE

Linux oder FreeBSD, avr-gcc, avrdude usw.

..und später kannst Du den Arduino als ISP für andere mP nutzen

von Carlo S. (carlo70)


Lesenswert?

Hallo
Ich kann nicht so recht verstehen , warum hier einige meinen, das man 
keinen Debugger braucht.
Bei meinen vielen (auch sehr großen) SPS-Projekten hat sich nicht das 
eigentliche Programm sondern
das dynamische Zusammenspiel von externer Hardware mit den mechanischen 
Komponenten
(Pneumatik,Hydraulik,Achsen usw.) als Problem und Herausforderung 
dargestellt.

Carlo

von Rainer U. (r-u)


Lesenswert?

Carlo S. schrieb:
> wie man Debugging auf der Hochsprachenebene macht ?? Man muß doch sehen
> was in dem Teil passiert.

Carlo S. schrieb:
> Ich kann nicht so recht verstehen , warum hier einige meinen, das man
> keinen Debugger braucht.

Kann es sein, dass Du etwas anderes meinst mit "Debugger"? Nimm doch als 
Anfänger ruhig so einen kleinen fertigen Arduino und schreib ein 
"Programm", was meinetwegen einen Pin umschaltet und dazu auf der 
seriellen Schnittstelle etwas ausgibt, was Du dir dann am PC während der 
Laufzeit anschaust. Den Port (Umschaltung) kannst Du messen oder mit LED 
sichtbar machen.

Was würde Dein Debugger in deiner Vorstellung und in diesem Beispiel 
tun?

von Carlo S. (carlo70)


Lesenswert?

Hallo Rainer,

Wenn dein „Umschaltpin“  ein Eingang sein soll müsste der Debugger zur 
Laufzeit zeigen , dass

A  der Eingang auch wirklich von der Software als 1 erkannt wird (nicht 
das der Eingang def. Ist)
B  ich würde dann gerne sehen wohin das Programm verzweigt
C  das er den Ausgang (LED) ansteuert
D was er intern an die UART übergibt

Ich möchte nicht das der Debugger irgend welche Breakpoint’s setzt oder 
nur eine Schrittabarbeitung
Macht.

Carlo

von Joachim S. (oyo)


Lesenswert?

Mal meine persönliche Einschätzung zur Wahl eines Mikrocontrollers:

In den 90ern und Anfang der 0er Jahre waren PIC-Mikrocontroller offenbar 
sehr beliebt. Dann traten die AVRs (ATmega & Co.) ihren Siegeszug an und 
verdrängten die PICs weitgehend. Jahrelang waren dann die AVRs quasi DIE 
Standard-Mikrocontroller schlechthin, zumindest für im 
privaten/Hobby-Bereich.
In diese Zeit fällt auch die Entstehung der Arduino-Boards, weshalb die 
Arduino-Boards ursprünglich allesamt AVRs benutzten.

Die AVRs sind immer noch sehr populär, in den letzten Jahren sind jedoch 
2-3 neue Konkurrenten hinzugekommen, die eine vglw. grosse Anhängerschar 
gewonnen haben:
- Die STM32. Im Vergleich zu AVR-Mikrocontrollern der gleichen Preislage 
bieten diese offenbar deutlich mehr Features und Power. Allerdings 
sollen sie wohl auch etwas komplexer/komplizierter sein, und der 
Einstieg damit etwas schwerer.
- Die ESPs - der ESP8266 und dessen Nachfolger ESP32. Sind so schnell 
und besitzen so viel RAM, dass man darauf auch komplette Interpreter für 
Hochsprachen laufen lassen kann, z.B. (Micro)Python oder LUA. Neben 
diesem Umstand dürfte ihre grosse Popularität vor Allem daher kommen, 
dass sie bereits WLAN an Board haben, und man für entsprechende Module 
(mit satten 4MB Flash-Speicher) bei Bestellung in China nur ca. 1,60 
Euro bezahlt. Nachdem bereits der ESP8266 ein Riesenerfolg wurde, kam 
dann vor 1-2 Jahren der in fast allen Belangen nochmal MASSIV 
verbesserte Nachfolger ESP32 auf den Markt, der bspw. noch Bluetooth an 
Board und nochmal ca. 10mal soviel RAM hat, dafür aber auch erst ab ca. 
3 Euro zu haben ist.

Auch ich würde für den Einstieg Arduino empfehlen. Viele hier im Forum, 
gerade diejenigen mit jahrzehntelanger Mikrocontroller-Erfahrung, 
schauen auf Arduino ein wenig herab, aber lass Dich davon nicht 
abschrecken:
Zumindest für den Einstieg in die Mikrocontroller-Welt ist Arduino 
wirklich hervorragend geeignet, weil es den Einstieg besonders leicht 
macht und man Unmengen Ressourcen/Tutorials/Informationen dazu findet.

Praktisch dabei ist auch:
Mittlerweile kann man (mit entsprechenden Plugins) ganz viele 
Mikrocontroller über die Arduino-IDE programmieren, neben den von Anfang 
an unterstützten AVRs auch z.B. die oben erwähnten STM32, ESP8266 und 
ESP32. Du musst Dich also kaum auf eine bestimmten 
Mikrocontroller-Familie festlegen.

Meine konkrete Hardware-Empfehlung für den Einstieg wäre:
Ein beliebiges Arduino-Board mit AVR (z.B. der sehr gut für Steckboards 
geeignete Arduino Nano; wenn man in China bestellt, ist man da teilweise 
schon mit zwei Euro dabei), ein NodeMCU-DevKit (ESP8266) (ab ca. 3 Euro 
bei Bestellung in China) oder ein ESP32-DevKit (ab ca. 6 Euro bei 
Bestellung in China). Dazu noch ein Steckboard und ein paar 
Sensoren/Aktoren/LEDs, falls Du sowas noch nicht hast. Programmierung 
mit der Arduino-IDE.

Zum Thema Debugger:
Ich schäme mich zwar ein wenig dafür, aber ich habe mich bislang noch 
niemals nennenswert mit Debuggern beschäftigt, obwohl ich seit 
Jahrzehnten programmiere. Wenn ich irgendwas debuggen muss, füge ich 
bislang einfach immer einfach eine print()-Anweisung (bzw. etwas 
Vergleichbares) ein.

von Rainer U. (r-u)


Lesenswert?

Dacht' ich's mir doch. Programmieren ist bischen anders als SPS. Ich 
meinte zwar einen Ausgabepin aber sei's drum.

Also A erschlägst Du z.B. mit einer Abfrageschleife plus Verzweigung 
(oder später mit einem Interrupt:

do
  if Eingang = 1
  then verzweige hierhin
  else print "war nix"
loop

hierhin:
  print "hier gehts weiter bei 1"

Ist zwar kein Arduino, aber Prinzip ist gleich.

Also A) wenn er nicht erkannt wird, verzweigt er nicht. B) legst Du 
selbst fest ("hierhin"). C) kannst Du sehen und D) ebenfalls

: Bearbeitet durch User
von Carlo S. (carlo70)


Lesenswert?

Hallo Rainer,

sicherlich kann man A für Testfälle  so erledigen  aber man kann doch 
nicht für alle Test’s noch

10x Testprogramme schreiben dann wird man ja nie fertig . Außerdem müßte 
man ja zu Schluss

Alles wieder entfernen  was ja auch fehleranfällig  ist . „war nix“ 
würde ja dann auch permanent

Geschrieben.

Zu B : Ich will ja prüfen ob des Programm dahin verzweigt.

ZU C: was ist wenn an der seriellen eben nichts „rauskommt“ ??

Was versteht du denn unter einem Debugger ??

Carlo

von Rainer U. (r-u)


Lesenswert?

Carlo S. schrieb:
> Was versteht du denn unter einem Debugger ??

So ungefähr das hier: https://de.wikipedia.org/wiki/Debugger

Carlo S. schrieb:
> u B : Ich will ja prüfen ob des Programm dahin verzweigt.

Da geht man als Programmierer davon aus. wenn ich einen Funktionsaufruf 
"machdies();" notiere, und das Programm kommt da an, dann verzweigt er 
auch dahin.

Carlo S. schrieb:
> ZU C: was ist wenn an der seriellen eben nichts „rauskommt“ ??

dito B: wenn ich "Print ..." schreibe, dann kommt da auch was, sonst 
habe ich die Parameter der SChnittstelle falsch angegeben oder die 
Hardware ist kaputt.

Carlo S. schrieb:
> „war nix“ würde ja dann auch permanent Geschrieben.

sicher, war ja auch nur ein Beispiel.

Carlo S. schrieb:
> sicherlich kann man A für Testfälle  so erledigen  aber man kann doch
> nicht für alle Test’s noch 10x Testprogramme schreiben dann wird man ja nie 
fertig

Wieso nicht?

do
   if (EingangA==1) {machA();}
   if (EingangB==1) {machB();}
   if (EingangC==1) {machC();}
   if (EingangD==1) {machD();}
   if (EingangE==1) {machE();}
...
loop

Das ging jetzt schnell :-)

Ich würde Dir empfehlen, die Arduino-Anfänger-Beispielprogramme mal 
durchzulesen und "nachzumachen"

: Bearbeitet durch User
von SachMal (Gast)


Lesenswert?

Carlo S. schrieb:
> Hallo Lothar,
>
> wenn das Debuggen das Timing verändert ist es nicht gut. In meiner Welt
> (SPS) werden
> die Daten in Echtzeit in der SPS gespeichert oder über Ethernet
> „weggeschoben“ aber
> vielleicht ist ne SPS auch „langsamer“ . Auf alle Fälle kann ich bei
> UART oder TCP/IP -
> Kommunikation sehen , was passiert.
> Einen kleinen AVR oder PIC habe ich schon vor 20 Jahren programmiert und
> somit kann ich die 2,5 €
> sparen. Ich habe halt jetzt ein Projekt wo aus der Stückzahl der Geräte
> ein Microcontroller wahrscheinlich angebracht wäre anstatt eine SPS zu
> nehmen.
>
> Carlo

Wenn Du ein kommerzielles Projekt daraus machen möchtest, spare Dir die 
Mühe und gehe zu einem der unzähligen Embedded-Ingenieurbüros, die wie 
Unkraut aus dem Boden schießen.

Du sagst, was Du haben willst und die machen Dir das sogar, 
vorausgesetzt Du bringst das Geld für die Party mit. Mit 60€ zzgl. 
Märchensteuer bist Du dabei.

Nicht billig, aber in anbetracht dessen, dass Du keine Ahnung von der 
Entwicklung von Microcomputer-Systemen hast, wäre das die beste Lösung.

Hier geht es nicht nur ums Programmieren, sondern auch um das Bauen von 
HW und vor allem ums qualifizieren der Geräte, da Du ja sicherlich 
weißt, dass man nicht alles einfach so in Umlauf bringen darf.

Ob sich der Aufwand löhnt, kannst nur Du selbst wissen.

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Carlo S. schrieb:
> Was versteht du denn unter einem Debugger ??

Hi,
der ATMEL-Studio4-Programm-"Simulator" kann über Button "Debug" 
aufgerufen werden und liefert mir "visualisiert" z.B. Informationen über 
den tatsächlichen PC Stand, die Registerinhalte, die Flags, die
Portzustände usw. usf.

ciao
gustav

von Carlo S. (carlo70)


Lesenswert?

Hallo SachMal,

ich will es natürlich nicht kommerzielles machen, da wäre der Aufwand
den du schilterst natürlich zu groß.

Carlo

von Carlo S. (carlo70)


Lesenswert?

Hallo  Karl B,

ja AtmelStudio kann das.

Carlo

von Brrzzt (Gast)


Lesenswert?

Joachim S. schrieb:
> Mal meine persönliche Einschätzung zur Wahl eines
> Mikrocontrollers:
>
> In den 90ern und Anfang der 0er Jahre waren PIC-Mikrocontroller offenbar
> sehr beliebt. Dann traten die AVRs (ATmega & Co.) ihren Siegeszug an und
> verdrängten die PICs weitgehend. Jahrelang waren dann die AVRs quasi DIE
> Standard-Mikrocontroller schlechthin, zumindest für im
> privaten/Hobby-Bereich.
> In diese Zeit fällt auch die Entstehung der Arduino-Boards, weshalb die
> Arduino-Boards ursprünglich allesamt AVRs benutzten.

Du wirfst du alle PICs in einen Topf, denn dein Wissen bezieht sich auf 
Urgestein aus den späten 70ern. Dass ein PIC32MZ-derivat im Leben nicht 
mit einem mieselsüchtigem AVR nicht vergleichbar ist, ist dir 
offensichtlich nicht klar.

Das ist aber eh irrelevant:
Nummer1 bei den Microcontrollern ist Renesas, und nicht Microchip.
Der Einsatz in der Industrie dürfte >99,97% der verbauten PICs und AVRs 
ausmachen. Der kleine Nebenschauplatz hier im Forum ist weder 
repräsentativ, noch relevant.

--> Ein Brett vorm Kopf ist kein Horizont

von Joachim S. (oyo)


Lesenswert?

Brrzzt schrieb:
> Du wirfst du alle PICs in einen Topf, denn dein Wissen bezieht sich auf
> Urgestein aus den späten 70ern. Dass ein PIC32MZ-derivat im Leben nicht
> mit einem mieselsüchtigem AVR nicht vergleichbar ist, ist dir
> offensichtlich nicht klar.
>
> Das ist aber eh irrelevant:
> Nummer1 bei den Microcontrollern ist Renesas, und nicht Microchip.
> Der Einsatz in der Industrie dürfte >99,97% der verbauten PICs und AVRs
> ausmachen. Der kleine Nebenschauplatz hier im Forum ist weder
> repräsentativ, noch relevant.

Ich kann aufgrund Deiner Antwort jetzt nur vermuten, dass sich da ein 
PIC-Fan auf den Schlips getreten fühlt oder so.

Wir reden hier doch von Mikrocontrollern für den Hobby-/Privat-Bereich, 
und meine Aussagen waren demnach auch ausschliesslich auf diesen Bereich 
bezogen. Was in der Industrie o.Ä. verwendet wird, dürfte für den 
Threadstarter eher irrelevant sein.

Was die PICs betrifft: Vielleicht irre ich mich da ja, aber mein 
persönlicher Eindruck ist eben, dass die PICs im Hobby-/privaten 
Bereich, um den es hier geht, eher wenig verbreitet sind, und 
AVR/STM32/ESPs da derzeit um ein Vielfaches populärer sind.
Wenn Du klare Belege für das Gegenteil hast, lasse ich mich natürlich 
gerne eines Besseren belehren.

Laut diesem Artikel aus dem letzten Jahr:
http://oiger.de/2017/04/28/nxp-nun-fuehrender-mikrocontroller-anbieter/163462
liegt Renesas übrigens nur noch auf Platz 2 bei den Mikrocontrollern - 
mit nicht 99,97 sondern ca. 16 Prozent Marktanteil.

> --> Ein Brett vorm Kopf ist kein Horizont

Und Tourette ist kein Glücksspiel mit einer rollenden Kugel.

: Bearbeitet durch User
von Manfred (Gast)


Lesenswert?

Sebastian S. schrieb:
> Herr Fahrlehrer. Ich habe noch nie am Steuer gesessen. Bitte zeigen Sie
> mir, die man das Auto in Bewegung setzt

Genau dafür habe ich den bezahlt.

> und dann den Nürburgring durchfährt.

Gegen entsprechendes Entgelt hätte er auch das getan.

Joachim S. schrieb:
> Viele hier im Forum, gerade diejenigen mit jahrzehntelanger 
Mikrocontroller-Erfahrung,
> schauen auf Arduino ein wenig herab,

Weil sie nicht akzeptieren können, dass es genug unkritische Anwendungen 
gibt, wo dessen IDE mehr als ausreichend ist!

> Zum Thema Debugger:
> Ich schäme mich zwar ein wenig dafür, aber ich habe mich bislang noch
> niemals nennenswert mit Debuggern beschäftigt, obwohl ich seit
> Jahrzehnten programmiere.

Als ich 6502 beruflich eingesetzt habe, hatte ich einen 
ic-circuit-emulator: CPU raus, Kabel drauf und PC dran. Tolle Sache, 
aber bannig teuer gewesen.

> Wenn ich irgendwas debuggen muss, füge ich
> bislang einfach immer einfach eine print()-Anweisung (bzw. etwas
> Vergleichbares) ein.

So mache ich das mit dem Arduino: Lasse mir Meßwerte seriell ausgeben, 
um zu kalibrieren oder auch mal 'nur' Portzustände, wenn etwas nicht 
laufen will. Das braucht zwar Zeit, aber so zeitkritische Anwendungen, 
dass diese dadurch gestört werden, hat man eher selten.

von Wolfgang (Gast)


Lesenswert?

Auch beim Arduino kann man ganz normal in Visual Studio debuggen, wenn 
man sich von der Arduino IDE löst und das Visual Micro Plugin einsetzt.

von Brrzzt (Gast)


Lesenswert?

Joachim S. schrieb:
> Brrzzt schrieb:
>> Du wirfst du alle PICs in einen Topf, denn dein Wissen bezieht sich auf
>> Urgestein aus den späten 70ern. Dass ein PIC32MZ-derivat im Leben nicht
>> mit einem mieselsüchtigem AVR nicht vergleichbar ist, ist dir
>> offensichtlich nicht klar.
>>
>> Das ist aber eh irrelevant:
>> Nummer1 bei den Microcontrollern ist Renesas, und nicht Microchip.
>> Der Einsatz in der Industrie dürfte >99,97% der verbauten PICs und AVRs
>> ausmachen. Der kleine Nebenschauplatz hier im Forum ist weder
>> repräsentativ, noch relevant.
>
> Ich kann aufgrund Deiner Antwort jetzt nur vermuten, dass sich da ein
> PIC-Fan auf den Schlips getreten fühlt oder so.

Aha, und warum nicht Renesas-Fan?

Momentan bearbeite ich übrigens gar keinen PIC, sondern einen 
STM32F303ZE. Aber der ist nicht Anfängertauglich, denke ich.

Ich mag einfach nur keine dummen Vergleiche, die aus Engstirnigkeit 
resultieren.
Wenn PIC<>AVR müsstest du PIC16/PIC18 <> ATMEGA vergleichen.
Und PIC12, PIC16 mit ATTINY. Selbst das ist schwierig, denn es gibt 
steinalte PICs, und nagelneue, schlechte AVRs und gute.
Weder AVR noch PIC16/18 sind veraltet. Es zwar ältere Produktlinien, 
aber sie bekommen beide noch Zuwachs.

Aber allgemein "PIC" gegen AVR impliziert auch PIC32MZ gegen ATTINY. Das 
ist dumm, die bedienen ganz andere Segmente...

Beide sind übrigens vom gleichen (relativ unbedeutenden) Hersteller. 
Soviel zu Krieg ;-)

von Joachim S. (oyo)


Lesenswert?

Brrzzt schrieb:
>> Ich kann aufgrund Deiner Antwort jetzt nur vermuten, dass sich da ein
>> PIC-Fan auf den Schlips getreten fühlt oder so.
>
> Aha, und warum nicht Renesas-Fan?

Weil ca. 80% Deiner Postings in diesem Thread eben Monologe über 
PIC-Mikrocontroller sind, Du Renesas hingegen nur kurz erwähnt hast.
Mittlerweile habe ich übrigens gesehen, dass Du weiter oben bereits ein 
anderes Posting verfasst hast, in dem Du ebenfalls einen 
PIC-Mikrocontroller empfohlen hast. Das verstärkt den Eindruck noch, 
dass Deine offensichtliche Verärgerung über mein früheres Posting 
vermutlich vor Allem daher kommt, dass ich von PIC-Mikrocontrollern 
tendenziell eher abgeraten habe, während Du sie halt explizit empfohlen 
hast.

> Ich mag einfach nur keine dummen Vergleiche, die aus Engstirnigkeit
> resultieren.

Und ich mag nicht, wenn Leute (völlig unnötig) beleidigend und unhöflich 
werden, nur weil Jemand bzgl. irgendeiner Mikrocontroller-Familie eine 
andere Meinung hat.

> Wenn PIC<>AVR müsstest du PIC16/PIC18 <> ATMEGA vergleichen.
> Und PIC12, PIC16 mit ATTINY. Selbst das ist schwierig, denn es gibt
> steinalte PICs, und nagelneue, schlechte AVRs und gute.
> Weder AVR noch PIC16/18 sind veraltet. Es zwar ältere Produktlinien,
> aber sie bekommen beide noch Zuwachs.

Ich weiss gar nicht, was Du eigentlich willst - wo habe ich denn 
überhaupt irgendwo AVR mit PIC-µCs verglichen? Ich habe von PIC-µCs 
überhaupt keine Ahnung, habe mich nie auch nur mit ihnen beschäftigt, 
und würde daher gar nicht auf die Idee kommen, die (was Features etc. 
betrifft) mit irgendwelchen anderen Mikrocontrollern zu vergleichen.
Das mögen wirklich ganz ganz tolle Mikrocontroller sein, gut möglich! 
Der Grund, warum ich für den Einstieg eher von PIC abrate, hat damit 
überhaupt nichts damit zu tun, was nun die bessere 
Mikrocontroller-Familie ist - sondern einfach damit, dass mir die PICs 
im privaten/Hobbybereich derzeit deutlich weniger populär zu sein 
scheinen als andere Mikrocontroller-Familien. Und das halte ich halt für 
einen viel wichtigeren Faktor, wenn es beim Einstieg in die 
Mikrocontroller-Welt um die Wahl der Mikrocontroller-Familie geht: Etwas 
nehmen, was derzeit halt populär ist, weil man dann viel leichter 
Tutorials, Infos, Software und im Bedarfsfall Hilfe findet.

von Hunsbuckel (Gast)


Lesenswert?

Wolfgang schrieb:
> Auch beim Arduino kann man ganz normal in Visual Studio debuggen,
> wenn man sich von der Arduino IDE löst und das Visual Micro Plugin
> einsetzt.

Es soll aber auch noch Techniker geben, die sich noch nicht der 
kollektiven Windows-Verblödung ergeben haben

von Sheeva P. (sheevaplug)


Lesenswert?

Walter K schrieb:
> nur zufällig hier schrieb:
>> Man programmiert die Aufgabe nicht in eines durch, insbesondere nicht
>> wenns komplexer wird.
>> Man zerlegt die Aufgabe in Funktionen, Prozeduren und Klassen.
>
> Ein anschauliches Modell für objektorirntiere Programmierung ist die
> Großbaustelle BER.
> Man zerlegt die Aufgaben, Kapselt die Dinge - und irgendwann verliert
> man den Kontrollfluss

Eigentlich ist das Gegenteil der Fall. Wenn ein Objekt defekt ist, 
tauscht man es gegen ein funktionierendes aus. Im Falle von BER wäre das 
dann ein brauchbarer und vorschriftskonformer Brandschutz gewesen, aber 
Immobilien sind halt keine Software und da kann man Teile nicht einfach 
durch welche austauschen, die lediglich dieselbe Schnittstelle haben. In 
der OO klappt sowas prima, das ist ja gerade der große Vorteil.

von Sheeva P. (sheevaplug)


Lesenswert?

Manfred schrieb:
> Sebastian S. schrieb:
>> und dann den Nürburgring durchfährt.
>
> Gegen entsprechendes Entgelt hätte er auch das getan.

Ja, aber es hätte keinen Spaß gemacht. Wenn Du dabei Spaß haben willst, 
fragst Du ausdrücklich nach Sabine oder Claudia, und wenn Du 'drin sitzt 
fragst Du ausdrücklich danach, ob das nicht auch schneller geht. Nur ein 
Tipp: dabei solltest Du mehrere Kotztüten mitführen.

Beitrag #5360931 wurde von einem Moderator gelöscht.
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
Noch kein Account? Hier anmelden.