Tutorial Arduino programmieren,

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.

Re: Tutorial Arduino programmieren,

Beitragvon Mathias » 22. Jan 2020, 22:37 Re: Tutorial Arduino programmieren,

Ich sehe, du hast versucht die Arduino Software nachzubauen.

Ich hatte mal ein etwas komplexeres Project mit Arduino gebaut, dazu hatte ich TimerOne gebraucht.
Irgendwo im Project musste ich ein Serial.Write einfügen, welches in die Luft schrieb. Ohne diese Zeile hatte das Programm nicht funktioniert.

Wieso auch immer. :cry:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4416
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon wp_xyz » 22. Jan 2020, 23:25 Re: Tutorial Arduino programmieren,

Andreas, genau sowas hatte ich mir vorgestellt und werde sicher darauf zurückkommen.
wp_xyz
 
Beiträge: 3073
Registriert: 8. Apr 2011, 08:01

Beitragvon af0815 » 23. Jan 2020, 09:29 Re: Tutorial Arduino programmieren,

Das Problem dabei ist, das man für verschiedene Projekte genaugenommen die Hardwarezugriffe synchronisieren muss. Da schliessen sich aber ein paar Sachen immer gegenseitig aus, weil ganz einfach nur sehr begrenzt Resourcen da sind.

Eigentlich wollte ich auf Basis dieser Kompenenten schauen, ob mal nicht Module von der Arduino Software direkt dazu assemblieren oder linken kann. Da ich schon länger nichts auf Maschinenebene gemacht habe, ist es ein interessantes Experiment. Ganz unbekannt ist die Materie für mich nicht, da ich schon die Z80 und die dazugehörige Hardware mit Assembler programmiert habe. Und Z80 mit einem Floppycontroller zu verstehen ist auch nicht unbedingt die einfachste Übung :-) Daher ist das wissen dazu schon mal da (Etwas eingerostet).

Ich hätte nur gerne mehr Zeit dafür :-)

Übrigends wäre es wirklich gut, wenn man die deutschen Tutorials ins englische Übersetzen könnte. Es gibt immer wieder AVR-Fragen im englischen Forum. Leider ist die aktuelle Wiki bei der Wartung von Übersetzungen nicht wirklich hilfreich. Zusatzmodule für die Wartung von Übersetzungen wurden abgelehnt. Scheinbar gibt es die alten Einträge in Mantis zur Wiki nicht mehr.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3873
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Timm Thaler » 23. Jan 2020, 10:09 Re: Tutorial Arduino programmieren,

af0815 hat geschrieben:Das Problem dabei ist, das man für verschiedene Projekte genaugenommen die Hardwarezugriffe synchronisieren muss. Da schliessen sich aber ein paar Sachen immer gegenseitig aus, weil ganz einfach nur sehr begrenzt Resourcen da sind.


Ist in ASM nicht anders: Wenn ich den Timer für die Hardware-PWM benötige, kann ich ihn mit gleicher Frequenz noch als Taktgeber verwenden - aber halt nicht mit anderer Frequenz. Wenn ich den Hardware-TWI verwenden will - kann ich halt 2 der ADC-Eingänge nicht nutzen.

Das Problem verschärft Arduino nur, indem nicht sichtbar ist welche Ressourcen intern genutzt werden und wie die einander bedingen.

Der Hintergrund des flexiblen DigitalWrite ist ja, dass ich ein Display damit ansprechen kann - und egal an welche Pins ich das Display anklemme immer die gleiche Routine verwenden und nur die Pinzuordnungen ändere. Das hätte man auch low-level auf Konstantenebene machen können - aber nicht in C und mit der Einfachheit der Arduino-Routinen.
Timm Thaler
 
Beiträge: 1016
Registriert: 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
Nach oben

Beitragvon Mathias » 23. Jan 2020, 17:20 Re: Tutorial Arduino programmieren,

Übrigends wäre es wirklich gut, wenn man die deutschen Tutorials ins englische Übersetzen könnte.
So wie es aussieht, macht das gerade Jemand.

Eigentlich wollte ich auf Basis dieser Kompenenten schauen, ob mal nicht Module von der Arduino Software direkt dazu assemblieren oder linken kann.
Es gibt do so ein Tool, welches C++ in Pascal umwandelt, Vielleicht hilft dies.

Ich habe mit folgendem Code mal probiert, die Pins Arduino kompatibel zu machen.
Das Beispiel ist für einen ATTiny2313, bei dem eine LED blinkt

Code: Alles auswählen
program Project1;
 
{$H-}
{$O-}
 
type
  TGPIOB = bitpacked record
    p9, p10, p11, p12, p13, p14, p15, p16: boolean;
  end;
 
  TGPIOD = bitpacked record
    p0, p1, p4, p5, p6, p7, p8, d0: boolean;
  end;
 
var
  GPIOB: bitpacked record
    PIN, DDR, PORT: TGPIOB;
  end
  absolute PINB;
 
  GPIOD: bitpacked record
    PIN, DDR, PORT: TGPIOD;
  end
  absolute PIND;
 
  procedure delay;
  var
    i: uint32;
  begin
    for i := 0 to 100000 do ;
  end;
 
begin
  // Setup
  GPIOB.DDR.p16 := True;
  GPIOB.PORT.p16 := False;
  repeat
    // Loop;
    GPIOB.PORT.p16 := not GPIOB.PORT.p16;
    delay;
  until False;
end.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4416
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon af0815 » 23. Jan 2020, 20:23 Re: Tutorial Arduino programmieren,

Mathias hat geschrieben:
Eigentlich wollte ich auf Basis dieser Kompenenten schauen, ob mal nicht Module von der Arduino Software direkt dazu assemblieren oder linken kann.
Es gibt do so ein Tool, welches C++ in Pascal umwandelt, Vielleicht hilft dies.

Nicht umwandeln, das war nicht meine Absicht, sondern einbinden bzw. dazulinken, notfalls als Assembler einbinden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3873
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Mathias » 30. Jan 2020, 19:30 Re: Tutorial Arduino programmieren,

Nicht umwandeln, das war nicht meine Absicht, sondern einbinden bzw. dazulinken, notfalls als Assembler einbinden.

Meinst du so ähnlich, wie dazumal unter DOS mit den *.obj Dateien ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4416
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon af0815 » 30. Jan 2020, 21:54 Re: Tutorial Arduino programmieren,

In etwa so.

Entweder wie eine dll/so oder wie eine lib oder als eingefügter Quellcode. Irgendwie halt. Beim Arduino gehts ja auch.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3873
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Mathias » 31. Jan 2020, 17:01 Re: Tutorial Arduino programmieren,

Funktionen in einer dll oder lib werden vom Programm erst zur Laufzeit geladen. Sie werden somit nicht in die EXE reinkompiliert. obj-Dateien werden reinkompiliert.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4416
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •
Vorherige

Zurück zu Sonstiges



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried