Tutorial Arduino programmieren,

Antworten
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 »

Ist noch Interesse an dem Tutorial vorhanden, man hört so keine Kritik. :roll:
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:man hört so keine Kritik.

Du willst sie, du kriegst sie :D

Du hast bei jedem Artikel die Artikelüberschrift nochmal als innere und oberste Überschrift gemacht, das macht man eigentlich nicht, ist ja doppelte Information. Auch kommt die Kurzeinleitung normalerweise über die Inhaltsangabe. Wenns dir um den deutschen Titel geht, schreibe ihn einfach in die erste Zeile vor die Kurzzusammenfassung. Auch sollte in jedem Artikel eine Rückverlinkung auf die Tutorialhauptseite stehen.

Zum Schieberegisterartikel:
http://wiki.freepascal.org/AVR_Embedded ... beregister

Du hast die Pins über Konstanten abgebildet, das ist gut. Der Port sollte aber auch zentral einstellbar sein, also

Code: Alles auswählen

var
  dataOutPort: Byte absolute PortD; //PortD
const
  dataOutPin = 0; // PD0


und statt WritePortD(dataOutPin, True); dann

Code: Alles auswählen

dataOutPort:= dataOutPort or (1 shl dataOutPin);


Das WritePortD ist für ein Tutorial auch insofern unglücklich, da die Routinen nicht vorhanden sind, auf der Seite IOs wird die Routine auch nur beipielhaft für einen Port vorgestellt.


Zur fehlerhaften Kopfzeile, das scheint am Titel zu liegen, in den Beispielen ist ein "/" drin (I2C/TWI). Da kommt das Wiki dann mit der Sprache durcheinander. Es sollten also keine Schrägstriche im Titel vorkommen außer zur Sprachdefinition (/de).

Grüße

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 »

Zur fehlerhaften Kopfzeile, das scheint am Titel zu liegen, in den Beispielen ist ein "/" drin (I2C/TWI). Da kommt das Wiki dann mit der Sprache durcheinander. Es sollten also keine Schrägstriche im Titel vorkommen außer zur Sprachdefinition (/de).

Ohne / geht. Danke.

Du hast die Pins über Konstanten abgebildet, das ist gut. Der Port sollte aber auch zentral einstellbar sein, also

Dies habe ich erst mal auf meinem PC modifiziert.

Code: Alles auswählen

var
  shiftPort: byte absolute PortA;


und statt WritePortD(dataOutPin, True); dann

Code: Alles auswählen

  procedure shiftOut595(val: byte);
  var
    i: byte;
  begin
    for i := 7 downto 0 do begin
      if (val and (1 shl i)) <> 0 then begin
        shiftPort := shiftPort or (1 shl dataOutPin);
    //      WritePortA(dataOutPin, True);
      end else begin
        shiftPort := shiftPort and not (1 shl dataOutPin);
   //       WritePortA(dataOutPin, False);
      end;
      shiftPort := shiftPort or (1 shl clockPin);
      shiftPort := shiftPort and not (1 shl clockPin);
     //       WritePortA(clockPin, True);
     //       WritePortA(clockPin, False);
    end;
  end;

Das hat zur Folge, das es nur mit {$O-} läuft, aber dies könnte man im Tutorial vermerken.
Im Einsteiger-Tutorial werde ich die auch vermerken, das dies an anderen Orten sicher auch zu Problemen führen kann.

Du hast bei jedem Artikel die Artikelüberschrift nochmal als innere und oberste Überschrift gemacht, das macht man eigentlich nicht, ist ja doppelte Information. Auch kommt die Kurzeinleitung normalerweise über die Inhaltsangabe. Wenns dir um den deutschen Titel geht, schreibe ihn einfach in die erste Zeile vor die Kurzzusammenfassung.
Dies verstehe ich nicht Ganz.

Auch sollte in jedem Artikel eine Rückverlinkung auf die Tutorialhauptseite stehen.

Wie und wo sollte ich das am besten machen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

AndreasMR
Beiträge: 98
Registriert: Di 4. Aug 2015, 15:29
OS, Lazarus, FPC: Linux, Raspbian, Windows
CPU-Target: 64/32 Bit

Re: Tutorial Arduino programmieren,

Beitrag von AndreasMR »

Hallo Mathias,

Mathias hat geschrieben:Ist noch Interesse an dem Tutorial vorhanden, man hört so keine Kritik. :roll:


Klar, großes Interesse sogar! Mache ruhig weiter.

Beste Grüße

Andreas
Ubuntu 14.04 LTS / Raspbian / Windows: Lazarus ab 0.9 bis 3.0

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

Re: Tutorial Arduino programmieren,

Beitrag von kupferstecher »

Mathias hat geschrieben:Das hat zur Folge, das es nur mit {$O-} läuft, aber dies könnte man im Tutorial vermerken.
Im Einsteiger-Tutorial werde ich die auch vermerken, das dies an anderen Orten sicher auch zu Problemen führen kann.

Geht denn dann gar nichts? Der Code sollte ja schon stimmen, dann wird es ein Compiler-Bug sein.

Du hast bei jedem Artikel die Artikelüberschrift nochmal als innere und oberste Überschrift gemacht [...]
Dies verstehe ich nicht Ganz.

Zum Beispiel die Gliederung des Artikels Schieberegister:

Code: Alles auswählen

 1 Schieberegister
    1.1 Portzugriffe
    1.2 Port-Konstanten
    1.3 Schieberegister schreiben 74HC595

Das Kapitel "1 Schieberegister" ist sinnlos. Es sollte so sein:

Code: Alles auswählen

 
 1 Portzugriffe
 2 Port-Konstanten
 3 Schieberegister schreiben 74HC595


Auch sollte in jedem Artikel eine Rückverlinkung auf die Tutorialhauptseite stehen.

Wie und wo sollte ich das am besten machen ?

Z.B. wie hier:
http://wiki.freepascal.org/AVR_Embedded ... l_-_SPI/de
Also ganz am Anfang und ganz am Ende. Wobei der Link ganz am Anfang nur im Tutorial sinnvoll ist. Bei normalen Wikiartikeln macht man das nicht.

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 »

Z.B. wie hier:
http://wiki.freepascal.org/AVR_Embedded ... l_-_SPI/de
Also ganz am Anfang und ganz am Ende. Wobei der Link ganz am Anfang nur im Tutorial sinnvoll ist. Bei normalen Wikiartikeln macht man das nicht.

Hast du diese Zeile gemeint :

Code: Alles auswählen

Zur Übersichtseite AVR Embedded Tutorial/de.


Das hat zur Folge, das es nur mit {$O-} läuft, aber dies könnte man im Tutorial vermerken.
Im Einsteiger-Tutorial werde ich die auch vermerken, das dies an anderen Orten sicher auch zu Problemen führen k
ann.

Geht denn dann gar nichts? Der Code sollte ja schon stimmen, dann wird es ein Compiler-Bug sein.

Mit einem Gemisch mit WritePortA( und shiftPort funktioniert es, aber für die werde ich einen neunen Thread erstellen., da dies nichts mit dem Tutorial zu tun hat.

Zum Beispiel die Gliederung des Artikels Schieberegister:

Mal gucken, wie ich das am besten hinkriege, so das der Titel in deutsch bleibt.
Irgendwie finde ich den Titel im Inhaltsverzeichnis gar nicht schlecht. :wink:


PS: Der Arduino Mega funktioniert jetzt auch unter Lazarus. :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 »

Mit einem Gemisch mit WritePortA( und shiftPort funktioniert es, aber für die werde ich einen neunen Thread erstellen., da dies nichts mit dem Tutorial zu tun hat.
Ich habe gerade einen Bug-Report geschrieben: https://bugs.freepascal.org/view.php?id=32730

Dabei habe ich festgestellt, das die aktuelle Trunk von FPC mit 3.0.4rc1 antwortet, anstelle mit 3.1.1 .
Somit könnte die 3.0.4 Final, eine ordentliche AVR-Unterstützung enthalten. Dies wäre für das Einstieger-Tutorial viel einfacher, da es dort keine tägliche Änderungen gibt.
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:Hast du diese Zeile gemeint

Genau, wobei die Rückverlinkung am Seitenende wichtiger ist.

Mathias hat geschrieben:Ich habe gerade einen Bug-Report geschrieben: https://bugs.freepascal.org/view.php?id=32730

Super~

Mathias hat geschrieben:Somit könnte die 3.0.4 Final, eine ordentliche AVR-Unterstützung enthalten. Dies wäre für das Einstieger-Tutorial viel einfacher, da es dort keine tägliche Änderungen gibt.

Fürs Tutorial wäre es sicher auch hilfreich, eine Version anzugeben, welche auch erfolgreich compiliert. In den Trunk-Versionen schleichen sich ja des öfteren Fehler ein, sodass der Crosscompiler gar nicht erstellt werden kann. Dann ist es gut, eine Version zu kennnen, bei der es funktionieren muss.

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, wobei die Rückverlinkung am Seitenende wichtiger ist.

Die Rückverlinkungen habe ich jetzt eingebaut.

Fürs Tutorial wäre es sicher auch hilfreich, eine Version anzugeben, welche auch erfolgreich compiliert. In den Trunk-Versionen schleichen sich ja des öfteren Fehler ein, sodass der Crosscompiler gar nicht erstellt werden kann. Dann ist es gut, eine Version zu kennnen, bei der es funktionieren muss.

Die 3.0.4rc1 hat es mit der Einstellung Trunk gebaut, wieso auch immer ?
Oder entsteht demnächst aus der 3.1.1 die finale 3.0.4 ?

Ich habe gerade einen Bug-Report geschrieben: https://bugs.freepascal.org/view.php?id=32730

Die habe dort auch schon wegen 3.1.1 und 3.0.4rc1 nachgefragt.

Oder macht etwa fpcupdelux einen Fehler mit den Versionen ?
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 »

Jetzt wird mit fpcupdelux wieder die Trunk erzeugt.

Code: Alles auswählen

Free Pascal Compiler version 3.1.1-r37633 [2017/11/30] for x86_64

Ich denke, das hat daran gelegen, das gerade FPC 3.0.4 erschienen ist.
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 »

Mathias hat geschrieben:
Nein in Windows hab ich nix spezielles unternommen.

So wie es scheint, braucht es Subversion unter Windows nicht, ich habe fpcupdelux gerade unter Win10 gestartet und da führt er SVN-Kommandos ohne Fehler aus.
Nur schläft das ganze ein, das es in der VB läuft.

Das es bei dir und af0815 ohne läuft, werde ich das Tutorial anpassen.

Ich wollte fpcupdelux in wine laufen lassen, da hat er gemotzt, das svn fehlt. Anscheinend ist svn und Windows auch keine Selbstverständlichkeit.

So nebenbei schon seit längerer Zeit, kann man kein FPC mehr mit fpcupdelux erstellen, egal ob stable oder trunk. Daher wollte ich es mit wine probieren.
Irgendwie habe ich das Gefühl, das es ein Durcheinander mit FPC 3.0.4 und 3.1.1 hat.
Zuletzt geändert von Mathias am So 10. Dez 2017, 18:08, insgesamt 1-mal geändert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Tutorial Arduino programmieren,

Beitrag von af0815 »

Mathias hat geschrieben:Ich wollte fpcupdelux in wine laufen lassen, da hat er gemotzt, das svn fehlt. Anscheinend ist svn und Windows auch keine Selbstverständlichkeit.

Die Frage ist, was er für ein System erkannt hat. Bei Windows lädt fpcupdeluxe von sich aus ein minimales svn (oder auch git) System automatisch herunter. Bei Linux meines Wissens nicht. Vielleicht hat in Wine fpcupdelux Probleme zu erkennen für welches System er arbeiten muss.

Andreas

Edit: Siehe fpcupdeluxe\svcclient.pas so ab Zeile 125
Da steht wo der fpcupdeluxe normalerweise den svnclient sucht
Zitat:

Code: Alles auswählen

    {$IFDEF MSWINDOWS}
    // Some popular locations for SlikSVN, Subversion, and TortoiseSVN:
    // Covers both 32 bit and 64 bit Windows.
    if not FileExists(FRepoExecutable)
       then FRepoExecutable := GetEnvironmentVariable('ProgramFiles\Subversion\bin\' + RepoExecutableName + '.exe')
       else break;
    if not FileExists(FRepoExecutable)
       then FRepoExecutable := GetEnvironmentVariable('
ProgramFiles(x86)\Subversion\bin\' + RepoExecutableName + '.exe')
       else break;
    if not FileExists(FRepoExecutable)
       then FRepoExecutable := GetEnvironmentVariable('
ProgramFiles\SlikSvn\bin\' + RepoExecutableName + '.exe')
       else break;
    if not FileExists(FRepoExecutable)
       then FRepoExecutable := GetEnvironmentVariable('
ProgramFiles(x86)\SlikSvn\bin\' + RepoExecutableName + '.exe')
       else break;
    if not FileExists(FRepoExecutable)
       then FRepoExecutable := GetEnvironmentVariable('
ProgramFiles\TorToiseSVN\bin\' + RepoExecutableName + '.exe')
       else break;
    if not FileExists(FRepoExecutable)
       then FRepoExecutable := GetEnvironmentVariable('
ProgramFiles(x86)\TorToiseSVN\bin\' + RepoExecutableName + '.exe')
       else break;
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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 »

doppelpost
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 »

Edit: Siehe fpcupdeluxe\svcclient.pas so ab Zeile 125
Da steht wo der fpcupdeluxe normalerweise den svnclient sucht

Ich habe das Tutorial dementsprechend angepasst.
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 habe noch das Tutorial GPIO angepasst, das es unter FPC die Wörter bitpacked und absolute verwendet.
Ich denke mal, es gibt kaum eine eleganter Möglichkeit, um die einzelnen Pins anzusprechen. :wink:

http://wiki.freepascal.org/AVR_Embedded ... ansprechen

Wen jemand noch eine Idee hat, was man im Tutorial noch beschreiben kann, kann sich melden.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten