NeoPixel und Arduino mit Lazarus
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
NeoPixel und Arduino mit Lazarus
Hallo,
ich habe die Ansteuerung der Neopixel mit Arduino fertig.
Im wesentlichen hab ich die CPP Version der AdaFruit_Neopixel Klasse und das Beispielprojekt Strandtest.ino nach Lazarus portiert.
Ausserdem einige Hilfsroutinen in Arduino.pas und timer.pas.
Aktuell wird nur der Atmega328p mit 16MHz unterstützt.
Natürlich muß ein Crosscompiler zu embedded-avr installiert sein.
In dem Beispiel Strandtest werden zwei runde Neopixel mit jeweils 12 LED angesteuert.
Diese müssen an den Pins 5 und 6 des Arduino angeschlossen werden.
Es kann aber durch anpassen der Konstanten am Programmstart jeder andere Pin und Anzahl LED's definiert werden.
Michael
ich habe die Ansteuerung der Neopixel mit Arduino fertig.
Im wesentlichen hab ich die CPP Version der AdaFruit_Neopixel Klasse und das Beispielprojekt Strandtest.ino nach Lazarus portiert.
Ausserdem einige Hilfsroutinen in Arduino.pas und timer.pas.
Aktuell wird nur der Atmega328p mit 16MHz unterstützt.
Natürlich muß ein Crosscompiler zu embedded-avr installiert sein.
In dem Beispiel Strandtest werden zwei runde Neopixel mit jeweils 12 LED angesteuert.
Diese müssen an den Pins 5 und 6 des Arduino angeschlossen werden.
Es kann aber durch anpassen der Konstanten am Programmstart jeder andere Pin und Anzahl LED's definiert werden.
Michael
- Dateianhänge
-
NeoPixel.zip
- (17.71 KiB) 195-mal heruntergeladen
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: NeoPixel und Arduino mit Lazarus
Moin,
Danke schon mal für deine Vorarbeit
genau das, was ich gesucht habe.
Zwar nicht für meinen AVR, aber das ist erst mal zweitrangig.
Bin gerade dabei diese so umzuschreiben, das Dein Atmega328p und meine ATtinyx5/ATMega16 unterstütz werden.
Eine frage habe ich aber gerade.
Wo hast du die beiden Functionen und aufgetrieben.
Aktuell sind dies genau die Fehlermeldungen, welche ich noch auf dem Zettel habe.
Werden aber sicherlich nicht die Letzten gewesen sein.
Danke schon mal für deine Vorarbeit


Zwar nicht für meinen AVR, aber das ist erst mal zweitrangig.
Bin gerade dabei diese so umzuschreiben, das Dein Atmega328p und meine ATtinyx5/ATMega16 unterstütz werden.
Eine frage habe ich aber gerade.
Wo hast du die beiden Functionen
Code: Alles auswählen
avr_save()
Code: Alles auswählen
avr_restore(SREG)
Aktuell sind dies genau die Fehlermeldungen, welche ich noch auf dem Zettel habe.
Werden aber sicherlich nicht die Letzten gewesen sein.
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
-
- Beiträge: 954
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: NeoPixel und Arduino mit Lazarus
Unit Intrinsics. Diese enthält noch ein paar weitere Intrinsics, die es vermeiden, dass man auf einen assembly Block für gängige Funktionalitäten zurückgreifen muss.Maik81SE hat geschrieben: Sa 4. Sep 2021, 17:08 Wo hast du die beiden FunctionenundCode: Alles auswählen
avr_save()
aufgetrieben.Code: Alles auswählen
avr_restore(SREG)

FPC Compiler Entwickler
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: NeoPixel und Arduino mit Lazarus
Da verwendest du sicherlich eine andere als ich...PascalDragon hat geschrieben: So 5. Sep 2021, 11:37 Unit Intrinsics. Diese enthält noch ein paar weitere Intrinsics, die es vermeiden, dass man auf einen assembly Block für gängige Funktionalitäten zurückgreifen muss.![]()
Meine sieht wie folgt aus.
Code: Alles auswählen
{
This file is part of the Free Pascal run time library.
Copyright (c) 2016 by the Free Pascal development team.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
unit intrinsics;
interface
const
{$i cpuinnr.inc}
procedure avr_cli;[INTERNPROC: in_avr_cli];
procedure avr_sei;[INTERNPROC: in_avr_sei];
procedure avr_wdr;[INTERNPROC: in_avr_wdr];
procedure avr_sleep;[INTERNPROC: in_avr_sleep];
procedure avr_nop;[INTERNPROC: in_avr_nop];
implementation
end.
Werd ich mal auf die suche nach alternativen Funktionen ausschau halten müßen.
Aber ich gehe mal davon aus, das es da nur darum geht das SREG-Register zu speichern und zurückzuschreiben.
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- 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: NeoPixel und Arduino mit Lazarus
Wenn du mit AVR arbeitest, so ist trunk oder zumindest der aktuelle fixes Zweig nötig. Keine alte Version. Und Lazarus 2.0.12 mit FPC 3.0.4 ist so gesehen steinalt 

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- kupferstecher
- Beiträge: 431
- Registriert: Do 17. Nov 2016, 11:52
Re: NeoPixel und Arduino mit Lazarus
Denke ich auch, der Variablenname lässt darauf schließen.Maik81SE hat geschrieben: So 5. Sep 2021, 18:37 Aber ich gehe mal davon aus, das es da nur darum geht das SREG-Register zu speichern und zurückzuschreiben.
Um das SREG-Register kümmert sich aber schon der Kompiler, wäre also doppelt gemoppelt.
Re: NeoPixel und Arduino mit Lazarus
Ich fände es schön, wenn ihr eure Lazarus-Projekte die ihr hier vorstellt, als Git-Repo veröffentlichen könntet, statt als Dateianhang. So könnt ihr einfacher Unterstützer für eure Projekte finden. So wird es momentan min. 2 Versionen geben, eines von fliegermichi und eines von Maik81SE. Hätte der fliegermichi ein Git-Repo für das Projekt, könnte der Maik81SE es Forken und seine Verbesserungen per Pull-Request zurück an fliegermichi schicken. Falls es passt, wird der Code integriert und es gibt eine neuere Software mit Unterstützung für Atmega328p und ATinyx5 usw. Und viele andere hätten einen zentralen Zugriffsort, falls die Lizenz erlaubt, und nicht diesen Thread der irgendwann von der Hauptseite verschwindet und es niemand sonst weiter erfährt. Was echt Schade ist. Ich schaue mir gern euren Code an.
Aber ich nehme an ihr wisst wie Git funktioniert
Aber ich nehme an ihr wisst wie Git funktioniert

- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- 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: NeoPixel und Arduino mit Lazarus
Das würde ich hier NICHT voraussetzen. Sorry aber GIT ist nicht gerade das einfachste Tool. Und du verlangst das wer ein Repo betreibt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: NeoPixel und Arduino mit Lazarus
Ich verlange gar nichts. Ich schrieb, das ich es schön fände das Leute ihre Projekte in ein Git-Repo einbringen würden, Gründe inbegriffen. Und ein Git-Repo zu betreiben, finde ich zumindest nicht schwer.
- Maik81SE
- Beiträge: 327
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.4 FPC 3.2.2)
- CPU-Target: x86-64; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: NeoPixel und Arduino mit Lazarus
Letztes Update am Freitag via FPCDeluxe., mache ich grundsätzlich, wenn ich den cross ändereaf0815 hat geschrieben: So 5. Sep 2021, 19:44 Wenn du mit AVR arbeitest, so ist trunk oder zumindest der aktuelle fixes Zweig nötig. Keine alte Version. Und Lazarus 2.0.12 mit FPC 3.0.4 ist so gesehen steinalt![]()
Dem schließe ich mich an und solange ich es local im Netzwerk mit git nicht sauber hinbekomme was die Versionen und das foken angeht, fange ich auf Git-Hub damit erst garnicht an.af0815 hat geschrieben: So 5. Sep 2021, 21:57 Das würde ich hier NICHT voraussetzen. Sorry aber GIT ist nicht gerade das einfachste Tool. Und du verlangst das wer ein Repo betreibt.
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
-
- Beiträge: 954
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: NeoPixel und Arduino mit Lazarus
Ist tatsächlich nur in 3.3.1 verfügbar. So oder so würde ich dir aber vorschlagen mindestens auf 3.2.2 hoch zu gehen, da sich zwischen 3.0.4 und 3.2.0 vieles im AVR Bereich getan hat.Maik81SE hat geschrieben: So 5. Sep 2021, 18:37Da verwendest du sicherlich eine andere als ich...PascalDragon hat geschrieben: So 5. Sep 2021, 11:37 Unit Intrinsics. Diese enthält noch ein paar weitere Intrinsics, die es vermeiden, dass man auf einen assembly Block für gängige Funktionalitäten zurückgreifen muss.![]()
FPC Compiler Entwickler
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: NeoPixel und Arduino mit Lazarus
Hmm, ich hab das in einem Git Repository aber auf meinem eigenen Server. Wie kann ich das zusätzlich noch mal auf github hochladen? (Ich hab da einen Account)
Re: NeoPixel und Arduino mit Lazarus
Hier kann ich leider nicht helfen, weil ich das (noch) nie machen musstefliegermichl hat geschrieben: Mo 6. Sep 2021, 11:49 Hmm, ich hab das in einem Git Repository aber auf meinem eigenen Server. Wie kann ich das zusätzlich noch mal auf github hochladen? (Ich hab da einen Account)

https://withdave.com/2019/01/migrating- ... -with-git/
https://medium.com/collaborne-engineeri ... cddedd5d73
https://gist.github.com/niksumeiko/8972566
Was ich mal genannt habe, ist ein Repository umbenennen und lokal die Einstellungen an das neue Online-Repository anzupassen. War aber auch schnell gemacht. Ich musste eigentlich nur die Adresse anpassen, soweit ich das weiß.
Was mir noch als ein Argument für ein öffentliches Git-Repo (muss ja nicht GitHub sein, es gibt auch GitLab, Bitbucket etc.) noch eingefallen ist, sind "Programmiersprachen Rankings"

Nur verlange ich hier NICHTS. Eher ein Vorschlag. Ich finde es nur halt schade, das der Code "verschwindet" wenn dieser Thread nicht mehr aktuell sein wird.
-
- Beiträge: 6910
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: NeoPixel und Arduino mit Lazarus
Wann sind diese beiden Functionen dazu gekommen ?PascalDragon hat geschrieben: So 5. Sep 2021, 11:37Unit Intrinsics. Diese enthält noch ein paar weitere Intrinsics, die es vermeiden, dass man auf einen assembly Block für gängige Funktionalitäten zurückgreifen muss.Maik81SE hat geschrieben: Sa 4. Sep 2021, 17:08 Wo hast du die beiden FunctionenundCode: Alles auswählen
avr_save()
aufgetrieben.Code: Alles auswählen
avr_restore(SREG)
![]()
Ich wollte die mit diesem Link überprüfen: https://svn.freepascal.org/cgi-bin/view ... view=roots
Nur ist er leider unterdessen tot.
Gibt es eine Alternative dazu ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 6910
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: NeoPixel und Arduino mit Lazarus
Und leider wurde in der Zwischenzeit etwas bei github geändert. Da ich sehr lange nichts mehr gemacht habe, habe ich dies erst kürzlich bemerkt. Mit dem Acount-Name und Password lässt sich nichts mehr hoch laden, man braucht da zwingend das SSH Zeugs.

Nut habe ich gerade keine Lust und Zeit, mich mit dem auseinander zu setzen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot