Tutorial Arduino programmieren,

Antworten
Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Tutorial Arduino programmieren,

Beitrag von Timm Thaler »

Nö, global als Variable deklarieren, bedingt halt leider, dass man sie an der falschen Stelle benutzen kann.

Was ich jetzt im Assembler gesehen habe:

Lokal als Const mit direkter Zuweisung: Wird als Variable im Sram angelegt und aus dem Flash initialisiert.
Global als Var mit direkter Zuweisung: Wird als Variable im Sram angelegt und aus dem Flash initialisiert.
Global als Variable mit späterer Zuweisung im Program: Wird als Variable im Sram angelegt, mit Null initialisiert und später per ldi mit einem Wert versehen.

Macht kaum einen Unterschied, insofern scheint der Mißbrauch von const als static zwar unschöner Stil, aber funktionierender Workaround zu sein, zumindest für die Controller.

Aber das Problem der fehlenden Statics bzw. der nachträglich veränderbaren "Konstanten" schleppt Pascal ja schon seit mindestens 20 Jahren mit sich rum.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Ich finde dies auch Müll mit den Konstanten, da hat ausnahmsweise C++ die Nase vorn.

Gut wäre, wen man

Code: Alles auswählen

var
  I: Integer; static;
schreiben könnte.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Ich führe die Diskussion von hier viewtopic.php?f=9&t=11140&start=45 am richtigen Ort weiter.

Die Wikiseite sollte halt Struktur haben. Für jeden Controller den man mal benutzt hat einen eigenen Abschnitt und dann die Artikel drunter setzen kann ja auch eine Struktur sein, aber dann sollte man auch konsequent sein und muss den Abschnitt Hardware streichen.
Fast die ganze AVR-Programmierung hat mit Hardware zu tun.


Bitte füge bei allen Besipielen am Anfang des Artikels {{Translate}} und am Ende des Artikels [[Category:AVR]] sowie {{AutoCategory}} ein.

{{Translate}} sorgt dafür, dass automatisch die Seiten in anderen Sprachen (sofern vorhanden) verlinkt werden; daher sollte dieses Template vor dem gesamten Text stehen.
[[Category:AVR]] ordnet den Artikel in die Kategorie AVR ein, sodass man den Artikel dort wiederfinden kann.
{{AutoCategory}} ordnet den Artikel automatisch in die Kategorie der jeweiligen Sprache ein (wenn der Titel auf /de endet, also in die Kategorie Deutsch)

Ich hab dies mit dem Timer-Tutorial probiert: http://wiki.freepascal.org/AVR_Embedded ... Counter/de
Die Fussnote sieht gut aus, aber mit der Kopfzeile stimmt was nicht.

Wenn du noch ein Minimalbeispiel für einen Atmega hast, kannst du ihn z.B. in den gleichen Artikel wie den für den Attiny packen (Dann natürlich wieder sauber gliedern). Aber zehn Blinkbeispiele für verschiedene Controller sind m.E. sinnlos. Für die Hardwareansteuerung gilt das gleiche wie für das Minimalbeispiel, wenn du UART-Routinen für verschiedene Controller hast, bring die am Besten in einem Artikel unter, das gibt sonst ein Wirr-War.

Da stimme ich zu, am besten ein Beispiel zB. für den ATtiny2313 Timer und und weiter unten Anmerkungen für weiter Kontroller, das der ATmega328 3 Timer hat.
Oder beim UART, heisst es beim ATmega USCR0A und beim ATTiny nur USCRA.

Im Einstiegertutorial, nur das Beispiel mit dem Blinker lassen, der Timer und das UART-Beispiel gehört dann zu Timer und UART.
.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Tutorial Arduino programmieren,

Beitrag von kupferstecher »

Mathias hat geschrieben:Da stimme ich zu, am besten ein Beispiel zB. für den ATtiny2313 Timer und und weiter unten Anmerkungen für weiter Kontroller, das der ATmega328 3 Timer hat.
Oder beim UART, heisst es beim ATmega USCR0A und beim ATTiny nur USCRA.

Dann sind wir uns ja einig :-)
So wie es im UART-Artikel ist, ist es doch jetzt übersichtlich.
Allerdings das Thema mit den Titeln scheint noch nicht abgeschlossen zu sein...
1. Nach der Wiki-Vorgabe müssen alle Titel auf Englisch geschrieben sein, wenns sprachlich daran scheitert frag einfach hier im Forum nach.
2. Was hindert dich daran "AVR Embedded Tutorial" mit in den Titel zu bringen? Das ist zur Abgrenzung im Lazaruswiki nicht unwichtig.

Die Aufteilung hätte ich wieder anders vorgenommen: UART ins Kapitel Hardwareansteuerung (an erste Stelle) und das Minimalbeispiel beim Minimalbeispiel belassen.

Ansonsten sieht das Tutorial schon sehr gut aus würde ich sagen, wenn ich das bei meinen ersten Versuchen gehabt hätte, wäre vieles einfacher gewesen 8)

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

1. Nach der Wiki-Vorgabe müssen alle Titel auf Englisch geschrieben sein, wenns sprachlich daran scheitert frag einfach hier im Forum nach.

Ich habe es ursprünglich hier abgeguckt und dort ist vieles in Deutsch.
http://wiki.freepascal.org/Lazarus_Docu ... 2F_Arduino

2. Was hindert dich daran "AVR Embedded Tutorial" mit in den Titel zu bringen? Das ist zur Abgrenzung im Lazaruswiki nicht unwichtig.

Ich habe dies in Minibeispiele geändert, sieht sauber aus. wen man das "AVR Embedded Tutorial" bei Hardware auch noch Links nehmen würde, wäre es auch schön untereinander.
Das würde optisch um einiges besser aussehen. :wink:

Die Aufteilung hätte ich wieder anders vorgenommen: UART ins Kapitel Hardwareansteuerung (an erste Stelle) und das Minimalbeispiel beim Minimalbeispiel belassen.

Würde besser in Hardware/Schnittstellen gehören. Dafür hat das Delay nichts in Hardware zu suchen.

Ich will noch folgende Tutorial machen:
GPIO-Interrupt, Mutiplex, Schieberegister. Klar könnte ein User dies alles in Arduino-Beispielen suchen, aber ich denke, wen es auch in Pascal Beispiele gibt, gibt es unterumständen mehr Arduino-Umsteiger, welche auf Pascal wechseln. :wink:

Ich sehe schon, wen man etwas sauberes will, gibt es recht Arbeit. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Tutorial Arduino programmieren,

Beitrag von kupferstecher »

Mathias hat geschrieben:Ich habe es ursprünglich hier abgeguckt und dort ist vieles in Deutsch.
http://wiki.freepascal.org/Lazarus_Docu ... 2F_Arduino

Habs mir grad mal angeschaut, alle Titel die ich so gesehen habe sind in Englisch gehalten, es sind lediglich die Links auf Deutsch, was ja ok ist.

2. Was hindert dich daran "AVR Embedded Tutorial" mit in den Titel zu bringen? Das ist zur Abgrenzung im Lazaruswiki nicht unwichtig.

Ich habe dies in Minibeispiele geändert, sieht sauber aus.

Es geht dabei nicht ums Aussehen, sondern darum, dass wenn jemand im Wiki nach "Timer" sucht, weil er Infos über den TTimer in seinem LCL-Programm braucht, sofort sieht, dass der Artikel über AVR-Timer für ihn uninteressant ist.
In den Links ist das vorangestellte "AVR Embedded Tutorial -" eher störend, ich habs aber der Einfachheit halber dringelassen.

Dafür hat das Delay nichts in Hardware zu suchen.

Strenggenommen nicht, aber es passt irgendwie thematisch rein, eine passendere Überschrift fällt mir nicht ein.

Ich will noch folgende Tutorial machen:
GPIO-Interrupt, Mutiplex, Schieberegister.

Nur zu! Je mehr Themen abgedeckt sind, desto besser. Meine Anmerkungen und Änderungen sollen dich nicht abhalten.
Also nicht falsch verstehen 8)

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Habs mir grad mal angeschaut, alle Titel die ich so gesehen habe sind in Englisch gehalten, es sind lediglich die Links auf Deutsch, was ja ok ist.

Hast du eine andere Titelseite ?
Ich sehe die meisten Titel und Beschreibungen in deutsch, vor allem, wen der Beitrag dann auch in deutsch ist.

ZB. ist der oberste Link von Lazaus/FPC komplett in deutsch.

Code: Alles auswählen

Überblick über Free Pascal und Lazarus (deutsch) - Eine kurze Diskussion über die Dinge, die Sie mit diesen Werkzeugen entwickeln können
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Tutorial Arduino programmieren,

Beitrag von kupferstecher »

*[[Overview of Free Pascal and Lazarus/de|Überblick über Free Pascal und Lazarus (deutsch)]]

Link: Überblick über Free Pascal und Lazarus (deutsch)
Titel: Overview of Free Pascal and Lazarus/de

http://wiki.freepascal.org/Overview_of_ ... Lazarus/de

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Jetzt verstehe ich was du meinst.

Nur das der Titel in deusch ist und der Link in englisch.

Dann darf auf dieser Seite: http://wiki.freepascal.org/AVR_Embedded_Tutorial/de alles in deusch sichtbar sein.
Aber die Titel in dem Tutorial selbst und sollte dann in englisch sein ? Der Link wird und der Tutorialtitel passen sich automatisch an.

Somit könnte eigentlich hier http://wiki.freepascal.org/AVR_Embedded_Tutorial/de auch das "AVR Embeddes Tutorial" verschwinden, aber im Tutorial sollte es dann in der Titelzeile stehen ?

Ich habe jetzt mal "Einstieg Lazarus und Arduino" angepasst.
Ist das was du dir vorstellst ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Tutorial Arduino programmieren,

Beitrag von kupferstecher »

Mathias hat geschrieben:Ich habe jetzt mal "Einstieg Lazarus und Arduino" angepasst.

Genau, so kommt es hin. Nicht vergessen nach dem Verschieben ggf. die Links entsprechend anzupassen.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Genau, so kommt es hin. Nicht vergessen nach dem Verschieben ggf. die Links entsprechend anzupassen.

Habe dies gerade noch gemacht.
Beim GPIO-Wiki habe ich es auch angepasst.

So wie es scheint, hat Timm Thaler dies schon von Anfang richtig gemacht.

Man lernt immer wider dazu. :wink:

PS: Ich habe den GPIO-Wiki noch um Funktionen ergänzt.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Tutorial Arduino programmieren,

Beitrag von Timm Thaler »

Mathias hat geschrieben:So wie es scheint, hat Timm Thaler dies schon von Anfang richtig gemacht.


Aber nur aus Versehen... ;-)

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Ich habe das Hauptmenü übersichtlicher gemacht, ich hoffe ihr sind gleicher Meinung. :wink:
http://wiki.freepascal.org/AVR_Embedded_Tutorial/de

Aber nur aus Versehen...
Glückspilz. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Kopfzeile fehlerhaft:

http://wiki.freepascal.org/AVR_Embedded ... Counter/de Hier fehlt sie ganz, dafür kommt ein | .

http://wiki.freepascal.org/AVR_Embedded ... _output/de Hier kommt ein englisch und wen man dieses anklickt, kommt der gleiche Inhalt mit einem Weiterleitungsverweis. Wen ich das Englische lösche, dann ist das Deutsche auch weg. :roll:

Was habe ich falsch gemacht ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Das Tutorial Schieberegister ist momentan fertig. http://wiki.freepascal.org/AVR_Embedded ... beregister

Wen jemand Kritik oder eine Verbesserung hat, kann er sich ruhig melden. :wink:
Tipfehler und Gramatikfehler können gut korrigiert werden. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten