Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
FAQ zum Einsteigerkurs uC-Programmierung
#1
Hier können alle Fragen und Diskussionen zum Einstiegskurs uC-Programmierung rein. Dank!

Hier der Link zu besagtem Kurs: https://www.radio-bastler.de/forum/showt...?tid=13864
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#2
Hallo Bernhard, vielen Dank für die erste Lektion des Kurses.
Dazu noch die banale Frage: Wieviel DIN A4 Seiten wird der Gesamtkurs etwa umfassen?

Gruß
Wilhelm
Niemandes Herr, Niemandes Knecht,
so ist es gut, so ist es recht

von Fallersleben
Zitieren
#3
Hallo zusammen,
Ich habe nun geschlagene 4-5 Std zugebracht um mit meinen wenigen Fähigkeiten und lahmen Rechner das erste Beispielprogrämmchen // putyour setup code here, to run once : usw auf den Bildschirm zu zaubern.
Für heute ist erst mal schluß
Danke Bernhard für Deine Mühe
Gruß Franz
eh isch misch uffreg isch mirs lieber egal
Zitieren
#4
Hallo,

kann man da noch mitmachen?
Oder ist schon alles zu spät?
Zitieren
#5
Tolle Sache Bernhard, die du da machst!
Mein nano (von einem Händler aus Deutschland) ist auch ein "alter".
Zwei Anmerkungen für die Mitleser hab ich noch:
- der Parameter \n in serial.print führt einen Zeilenumbruch aus
- die Datentypen sind manchmal tückisch:
-----------------------------------------------------
Zahl 1 = 2000 Zahl 2 = 5000
Multiplikation=-27008
Division=0.40
-----------------------------------------------------
der rechnet doch falsch ???
nein, es ist die Limitüberschreitung die Bernhard bei Integer erwähnte.
hier ist es leicht zu sehen, aber manchmal kann man solche Fehler stundenlang suchen.

Alfred
Zitieren
#6
Hallo zusammen!

@Wilhelm: Rechne in der Summe so mit 200-250 Seiten

@Franz: Immer mit der Ruhe!

@Dreiling: Bitte mache mit, es ist nie zu spät! Eine Anmeldung ist nicht nötig.

@Alfred: Danke für die Demonstration des Limits von Datentypen! Ja nach solchen Fehlerquellen kann man lange suchen, wegen soetwas sind schon Raketen abgestürzt oder Satelliten verloren gegangen.
Richtig ein \n macht den Zeilenumbruch. Das ist das Zeichen was Serial.println() automatisch mitsendet, Serial.print() aber nicht. Ein Tipp: Mit \t kann man einen Tabulator in die Ausgabe erwirken. Damit sind Formatierungen auch nochmal ein Stück weit leichter, das ist eventuell in der Hausaufgabe von Bedeutung.

Gruß Bernhard

Gruß
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#7
Hallo Bernhard,
habe versucht heute weiter zu machen, scheitere jedoch. Nach dem Aufrufen von Arduino öffnet sich für Sekundenbruchteile das Startbild und verschwindert dann. Das war komischerweise gestern nicht so .
Gruß Franz
eh isch misch uffreg isch mirs lieber egal
Zitieren
#8
Hallo Franz,

ein paar mehr Informationen brauche ich dann schon. Starte doch mal die Arduino IDE über eine geöffnete Eingabeaufforderung bzw. Konsole (falls Du Linux nutzt). Dort sollten Informationen erscheinen, die dann Aufschluß über die Ursache  geben können. Was hast Du gestern anders gemacht? Vielleicht die IDE mit anderen Nutzerrechten aufgerufen? Startet die IDE wenn Du sie mit Administratorrechten aufrufst?

Gruß Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#9
Falls Ihr im Kurs mal Fehler oder Fehlermeldungen habt, dann schreibt die bitte mit in den Beitrag rein. Die Meldungen werden ja nicht umsonst erzeugt, denn eine funktionierende Glaskugel hat wohl bisher noch keiner entwickelt!

Otto.
Zitieren
#10
Eine Bitte:

Beim nächsten Script bitte Seiten nummerieren. Scripte drucke ich immer aus, weil sich (für mich) damit besser arbeiten läßt. Und wenn man viele nicht nummerierte Seiten hat, ist die Gefahr groß, daß irgend wann die Reihenfolge durcheinander gerät.
Der Stil des Scrips sagt mir sehr zu.

Gruß, Dietmar
Zitieren
#11
(09.12.2019, 11:31)DiRu schrieb: Eine Bitte:

Beim nächsten Script bitte Seiten nummerieren. Scripte drucke ich immer aus, weil sich (für mich) damit besser arbeiten läßt.

Thumbs_up Wird gemacht!


(09.12.2019, 11:31)DiRu schrieb: Der Stil des Scrips sagt mir sehr zu.

Gruß, Dietmar

Smiley20 Vielen Dank! Ich bin selbst überrascht das es hier (noch!) so ruhig zugeht.
Das kann bedeuten das sich viele gemeldete Teilnehmer noch nicht an die 1.Lektion ran getraut haben, oder das wirklich alle damit klarkommen! Ein paar Lösungen zur Hausaufgabe habe ich auch schon bekommen! Das waren entweder die ganz Schnellen oder die Hausaufgabe ist in der Tat zu einfach! Big Grin


Gruß Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#12
Hallo Bernhard,
das wir die Hausaufgabe schicken sollen hab ich nicht mitgekriegt.
Mein Problem beim programmieren ist folgendes: Ich habe eine Idee und die wird dann umgesetzt. Eine Alternative zu finden ist da schwer :-)
Und so ist die Hausaufgabe doch recht schwierig, das Programm läuft zwar, aber ich habe keine Stelle gefunden wo ich eine "if" Anweisung unterbringen könnte. Aber ich hab ja noch 2 Wochen Zeit...

Alfred
Zitieren
#13
(09.12.2019, 16:47)AlfredG schrieb: das wir die Hausaufgabe schicken sollen hab ich nicht mitgekriegt.

Nein bitte, das ist nicht nötig! Wie ich oben geschrieben habe, könnt Ihr (wenn Ihr wollt) Eure Lösung nach Hochladen der Musterlösung zusätzlich im FAQ-Thread vorstellen. Ich will die Hausaufgaben von allen gar nicht kontrolllieren müssen, bei 20+ Leuten die sich bisher für den Kurs gemeldet haben, habe ich gar nicht die Zeit! Es sind nur (wohl freiwillig) bisher einige Lösungen von Teilnehmern per PN oder Email eingetrudelt! DAS ZUSCHICKEN EINER LÖSUNG IST ABER NICHT WIRKLICH NÖTIG!!!  Ich helfe gern bei der Umsetzung und bei Fragen zur Hausaufgabe hier im FAQ, aber es gibt keine Noten auf Lösungseinsendungen oder ähnliches!!!

Gruß Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#14
(09.12.2019, 15:08)Bernhard schrieb: Das kann bedeuten das sich viele gemeldete Teilnehmer noch nicht an die 1.Lektion ran getraut haben, oder das wirklich alle damit klarkommen! Ein paar Lösungen zur Hausaufgabe habe ich auch schon bekommen! Das waren entweder die ganz Schnellen oder die Hausaufgabe ist in der Tat zu einfach! Big Grin


Gruß Bernhard

Da ich z. Z. unterwegs bin, kann ich momentan nur virtuell mitarbeiten...
Frühestens am Wochenende kann ich dann tatsächlich an meinen Rechner.
Bis dahin kompiliere ich nur im Kopf Big Grin
Grüße

Rüdiger

------------

no sig at all
Zitieren
#15
Bislang konnte ich anscheinend für openSuse Linux Leap 15.1 noch keinen Treiber für den Arduino Nano Atmega328P finden? Habe viel im Internet gesucht . Aber etwas passendes nicht gefunden.

Wenn das USB Kabel mit dem Nano angesteckt wird, leuchtet dort zunächst eine grüne und eine rote LED. Nach kurzer Zeit verlöscht die rote LED. Also sollte doch ein Treiber dafür da sein?

Unter Yast habe ich schließlich folgendes gefunden:

   

Das könnte der Treiber sein !? Hoffentlich! Dann wäre er wohl in Linux defaultmäßig dabei?

Kann mir das jemand bestätigen?

Dietmar
Zitieren
#16
Hallo Dietmar,

das sieht sehr gut aus meine ich.
Ich denke wenn Du die Arduino IDE, also die Programmierumgebung, startest und der Controller am USB-Port hängt, da
sollte die IDE den Arduino erkennen und auch das Programm übertragen können. Dein Entwicklerboard wird dann unter dem
Werkzeug-Menü sicher als /dev/ttyUSB.... und nicht als COMxx gelistet. Ist das der Fall, dann hat das Linux die Treiber für
den Schnittstellenbaustein bereits an Bord. War hier bei meinem Ubuntu auch so, aber das will ich nicht für alle Linux-Distributionen
unterschreiben. Ansonsten gibt es die Treiber für Win/MacOS/Linux auch hier: https://sparks.gogo.co.nz/ch340.html

Nochmal zum Ausdrucken der Kursunterlagen. Ich habe ein paar Tipps bekommen wie man die Formatierung noch ändern könnte und wie
automatisch ein Inhaltsverzeichnis erstellt wird ,.. ... Ich muss dazu sagen, das ich früher meine ganzen Sachen (von Brief bis technische Unterlagen) immer per LaTex und unter Unix geschrieben habe. Die Windowssysteme und auch Office waren in meiner Firma primär der Sekretärin vorbehalten.
Das hier ist mein erster Versuch eine größere Sache mit Word und unter Windows 10 durchzuziehen. Da die meisten Kursteilnehmer sicher Windows
als Grundlage habe, wollte ich das ebenso mal probieren. Ich bin weit von einem Windows 10 - Systemadministrator entfernt, ebenso entwickele
ich eine gewisse Hassliebe zu Word. So richtig ist WYSIWYG - naja - auf jeden Fall hat Word eine Intelligenz zum Abgewöhnen und mit seinen
Autoformatierungen und Autokorrekturen auch immer das letzte "Word". Aber ich will bei der Sache hier (also dem Kurs) ja auch etwas lernen und wenn
es nur das ist, das ich die Unterlagen für einen Fortgeschrittenenkurs oder FPGA-Kurs wieder in LaTex erstelle. Nach über 30-40 Jahren mit einem System wie TeX
oder LaTex ist Word wie mit 180 km/h in eine Betonmauer zu fahren, also alles andere als angenehm.
Ich werde diesen Kurs hier, also alle Lektionen, am Ende nochmal als Gesamtdokument mit Inhaltsverzeichnis und durchgehender Seitennummerierung in LaTex gesetzt herausgeben. Ich bin mit dem was Word erzeugt leider auch immer noch nicht 100% einverstanden, auch bei der PDF-Erzeugung da ist reichlich Luft nach oben.
Betrachten wir also die einzelnen Lektionen im PDF-Format erstmal wie ein Hand- oder Übungszettel für das Labor und weniger als einzelne Kapitel eines Buches.

Gruß Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#17
Danke, Bernhard,

die Programmierumgebung funktioniert auch. Unter Suse Linux hat "arduino" nur 882 B und keine 395 KB , wie unter Windows. Das Fenster zur Programmierung erscheint jedoch in der gleichen Weise.
Der Arduino "spricht" also mit mir. Nun kann es weiter gehen.

Daß Du LaTeX bevorzugst, kann ich verstehen und voll nachvollziehen. Meine Skripte habe ich auch nur mit LaTeX geschrieben. Auch solche Skripte, die zunächst mit Atari ST verfaßt wurden, konnten zunächst unter (unterschiedlichen) Windows weiter verwendet werden und dann schließlich auch mit Suse Linux. Es waren jeweils nur geringe Anpassungen dafür erforderlich.

Dietmar
Zitieren
#18
Hallo, da per PN die Frage kam wo es den Kurs den gibt, hier ein Bild. 

Die 1. Lektion des Kurses findet man im Thread "Einsteigerkurs Microcontrollerprogrammierung". Hier der Link: https://www.radio-bastler.de/forum/showt...?tid=13864

Im ersten Post sieht man einen Link zum Download der PDF-Datei für die 1. Lektion, siehe Bild.

   

Weitere Lektionen werden dort bei gegebener Zeit erscheinen.

Gruß
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#19
(10.12.2019, 14:22)Bernhard45 schrieb: ...findet man im Thread "Einsteigerkurs Microcontrollerprogrammierung". Hier der Link: https://www.radio-bastler.de/forum/showt...?tid=13864

Da der Kurs doch länger geht, wäre prima, wenn ein Mod den Link zum Einsteigerkurs in Dein erstes Posting in DIESEM Thread hier basteln könnte. Sonst kriegst die Frage sicher noch öfter gestellt...
Gruß,
Uli
Zitieren
#20
Hallo,

ich bekam über Email die Frage wie viele Schleifen oder Programmverzweigungen denn in der Hausaufgabe benutzt werden müssen?

Die Antwort dazu lautet: So viele wie Euer Lösungsansatz benötigt! Es gibt so unterschiedliche Möglichkeiten die Lösung der Aufgabe im Programmcode zu formulieren, das es falsch ist eine bestimmte Anzahl von Schleifen oder Programmverzweigungen vorzuschreiben!

Nutzt einfach die Elemente der Programmiersprache C, die ich in Lektion 1 vorgestellt habe. Jede Hausaufgabe lässt sich mit den Sprachelementen bewältigen, die in den vorhergehenden Lektion(en) vorgestellt wurden! Nutzt diese Elemente aus wo es nur geht, denn nur so werden sie wiederholt und man merkt sie sich. Und nur wenn Ihr diese Sprachelemente kennt, könnt Ihr später Probleme analysieren, abstrahieren  und in der Programmiersprache C lösen.

Wer also nach der Lektion 1 das 1x1 so löst,


Zitat:void setup() {
Serial.begin(9600);
}

void loop() {
Serial.println("0x0=0");
Serial.println("0x1=0");
Serial.println("0x2=0");
Serial.println("0x3=0");
Serial.println("0x4=0");
...
Serial.println("10x10=100");
delay(1000);
}


der hat die Lektion 1 und das Ziel dahinter nicht wirklich verstanden. Das würde eher unter die Rubrik "Thema verfehlt" fallen und derjenige ist gut beraten sich nochmals die Lektion vorzunehmen, zu lesen und zu verstehen(!). Ihr werdet in weiteren Lektionen auf die Sprachelemente vorheriger Lektionen aufbauen müssen!

Ich habe nun auch schon einige Hausaufgaben zugeschickt bekommen (obwohl gar nicht von mir gefordert). Bei einigen Kurzteilnehmern fällt mir auf, das für Variablen kaum aussagekräftige Namen gewählt, sondern nur einzelne Buchstaben genutzt werden. Das ist zwar in der Programmiersprache C möglich, wird aber meist nur für Zählvariablen so umgesetzt. Bitte benennt die Variable doch mit einem richtigen Namen! Das verbraucht im Controller nicht mehr Speicher als eine Variable deren Name nur aus einem Buchstaben besteht.

Also zum Beispiel float Ergebnis;
anstelle von float E;

Durch die großzügige Vergabe von aussagekräftigen Variablenbezeichnungen wird der Code deutlich lesbarer. Ihr werdet Euch später wieder viel leichter in den Code einarbeiten können und verstehen was Ihr da gemacht habt. Sind die Variablennamen nur einzelne Buchstaben, dann ist der Algorithmus nach ein paar Wochen für Euch (oder gar für andere Leser) kaum noch verständlich, glaubt mir. Man könnte sogar soweit gehen, das man nicht nur einen aussagefähigen Variablennamen wählt, nein man könnte dem Namen sogar noch eine Information zum Datentyp mitgeben.

float fErgebnis;
int iErgebnis;
bool bErgebnis;

Bei diesen Variablennamen ist jederzeit und an jeder Stelle im Code sofort auch der Datentyp ersichtlich! So vermeidet Ihr Inkompatiblitäten und Fehlzuweisungen wenn die Programme größer werden.

Vielleicht hilft das dem ein oder anderen bei der Lösung der Programmieraufgabe!

Für die ganz Schnellen unter den Kursteilnehmern, die sich jetzt bereits langweilen: Als Zusatzaufgabe könnt Ihr ja mal die Berechnung der Zahl Pi durch den Kontroller vornehmen lassen. (https://de.wikipedia.org/wiki/Kreiszahl)
Oder Ihr Implementiert das Sieb des Eratosthenes (https://de.m.wikipedia.org/wiki/Sieb_des_Eratosthenes), auch eine sehr schöne Aufgabe! Somit könnt Ihr die Wartezeit bis zur Lektion 2 überbrücken.

Gruß
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren


Gehe zu: