Member
Beiträge: 10.603
Themen: 355
Registriert: Jul 2012
02.01.2019, 11:57 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2019, 11:58 PM von christianw..)
Du justierst derzeit nur den Nullpunkt “n”, aber nicht den Anstieg “m*x”.
2-Punkt ist dann: mx+n
Damit ließe sich die Nichtlinearität des Anstiegs/Gain kompensieren. In wieweit das notwendig ist, kann ich nicht sagen. Es braucht dazu natürlich ein genaues präzises Messnormal.
Member
Beiträge: 10.734
Themen: 45
Registriert: Jan 2008
Na ja... diesen Anspruch habe ich nicht. Laut Datenblatt werden +/- 0,5 Grad bei 25 Grad garantiert, von 0..65 Grad dann +/- 1. Im Vergleich zu diversen anderen Thermometern im Haus ist er am oberen Ende, deshalb bekommt er im Programm eine statische Korrektur nach unten.
Eine Kalibration der absolute Genauigkeit kann ich also nicht leisten. Es geht hier mehr um Trends und ihre zügige Anzeige. Hier ist zur Zeit eher die Wärmekapazität des Sensors und seiner Platine das grösste Hindernis.
Member
Beiträge: 15.904
Themen: 70
Registriert: Jul 2009
03.01.2019, 11:24 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2019, 11:44 PM von voltwide.)
Die gleitende Mittelwert Prozedur sieht mir korrekt aus. Diesen Algorithmus fand ich schon immer bestechend. Was der Compiler aus der For-Schleife macht, will ich lieber nicht wissen - ist aber auch völlig wurscht, hier kommt es ja überhaupt nicht an auf maximale Geschwindigkeit.
Ich sehe allerdings keine Initialisierung des Ringpuffers und des Resultates.
edit: ist garkein Ringpuffer, sondern ein FiFo.
...mit der Lizenz zum Löten!
Member
Beiträge: 10.734
Themen: 45
Registriert: Jan 2008
04.01.2019, 01:38 AM
(Dieser Beitrag wurde zuletzt bearbeitet: 04.01.2019, 01:39 AM von kahlo.)
Ich fühl mich auch ganz schlecht... Das Programm hat alles, was ich normalerweise vermeide:
- Rechnen mit Fliesskommazahlen, und davon eine Menge,
- Längliche For-Next-Schleifen,
- delay-Befehle.
Aber ich hab immer noch Zeit für die Delays
.
Arduino ist nicht C, man muss mit wenig auskommen. Jedenfalls, wenn es auf die Schnelle programmiert sein soll. Seltsamerweise funktionieren aber viele Elemente von C, obwohl sie in der Arduino-Referenz nicht dokumentiert sind.
Member
Beiträge: 15.904
Themen: 70
Registriert: Jul 2009
04.01.2019, 01:02 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 04.01.2019, 01:03 PM von voltwide.)
Wenn die Echtzeitanforderungen nun mal so gering sind wie sie sind, würde ich auch nicht allzu viel Gehirnschmalz in Programmperformance legen. Letztendlich liegt die Arduino-IDE eine Abstraktionsebene über der C-Programmierung und diese selbst wieder über dem Assembler. Damit wird der Code ja deutlich kompakter und auch besser lesbar. Und ne fertig gelieferte display-Ansteuerung die man nicht zum 1001-mal neu erfindet hat ja durchaus was für sich. Wenn es Dich partout in den Fingern juckt, kannst Du vermutlich die c-typischen Schiebeoperationen anstelle der for-Schleife einsetzen.
...mit der Lizenz zum Löten!
Member
Beiträge: 10.734
Themen: 45
Registriert: Jan 2008
05.03.2019, 11:09 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 05.03.2019, 11:10 PM von kahlo.)
(04.01.2019, 01:02 PM)voltwide schrieb: Letztendlich liegt die Arduino-IDE eine Abstraktionsebene über der C-Programmierung und diese selbst wieder über dem Assembler. Damit wird der Code ja deutlich kompakter und auch besser lesbar. Und ne fertig gelieferte display-Ansteuerung die man nicht zum 1001-mal neu erfindet hat ja durchaus was für sich. Wenn es Dich partout in den Fingern juckt, kannst Du vermutlich die c-typischen Schiebeoperationen anstelle der for-Schleife einsetzen.
Letztens hat es mich in den Fingern gejuckt - Ich hab dein Tiny-Tone-Programm in der Arduino-IDE kompiliert. Das ging
. Die Arduino-Abstraktionsebene ist also da, aber es geht immer noch mehr, wenn man will. Oder kann...
Administrator
Beiträge: 10.251
Themen: 165
Registriert: Jun 2005
06.03.2019, 01:38 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 06.03.2019, 01:40 PM von alfsch.)
(05.03.2019, 11:09 PM)kahlo schrieb: (04.01.2019, 01:02 PM)voltwide schrieb: Letztendlich liegt die Arduino-IDE eine Abstraktionsebene über der C-Programmierung und diese selbst wieder über dem Assembler. Damit wird der Code ja deutlich kompakter und auch besser lesbar. Und ne fertig gelieferte display-Ansteuerung die man nicht zum 1001-mal neu erfindet hat ja durchaus was für sich. Wenn es Dich partout in den Fingern juckt, kannst Du vermutlich die c-typischen Schiebeoperationen anstelle der for-Schleife einsetzen.
Letztens hat es mich in den Fingern gejuckt - Ich hab dein Tiny-Tone-Programm in der Arduino-IDE kompiliert. Das ging . Die Arduino-Abstraktionsebene ist also da, aber es geht immer noch mehr, wenn man will. Oder kann...
..hatte ich auch genommen; nur das "board" tiny45/85 installiert...und die compiler-Warnungen ausgeschaltet...sonst kommen 1000 warnings...
weil es mit dieser board-definiton direkt in C den code für das target erzeugt, ohne arduino-bootloader.
+
>
Arduino ist nicht C < ... doch, klaro kahlo.
verpackt in eine Java-skript-shell...
ist nur ne Menge an vordefinierten Libraries drin, die machen es erst so einfach.
Don't worry about getting older. You're still gonna do dump stuff...only slower
Member
Beiträge: 10.603
Themen: 355
Registriert: Jul 2012
Zitat:verpackt in eine Java-skript-shell...
Wirklich wirklich?
Administrator
Beiträge: 10.251
Themen: 165
Registriert: Jun 2005
06.03.2019, 02:26 PM
(Dieser Beitrag wurde zuletzt bearbeitet: 06.03.2019, 08:03 PM von alfsch.)
(06.03.2019, 01:42 PM)christianw. schrieb: Zitat:verpackt in eine Java-skript-shell...
Wirklich wirklich?
guck: so sieht der Start der arduino-shell aus: V 1.8.8 , also die aktuelle.
Code:
#!/usr/bin/env bash
APPDIR="$(dirname -- "$(readlink -f -- "${0}")" )"
for LIB in \
"$APPDIR"/java/lib/rt.jar \
"$APPDIR"/java/lib/tools.jar \
"$APPDIR"/lib/*.jar \
;
do
CLASSPATH="${CLASSPATH}:${LIB}"
done
export CLASSPATH
LD_LIBRARY_PATH=$APPDIR/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
export PATH="${APPDIR}/java/bin:${PATH}"
export JAVA_TOOL_OPTIONS=`echo $JAVA_TOOL_OPTIONS | sed 's|-javaagent:/usr/share/java/jayatanaag.jar||g'`
JAVA=java
if [ -x "$APPDIR/java/bin/java" ]; then
JAVA=$APPDIR/java/bin/java
fi
# Collect options to java in an array, to properly handle whitespace in options
JAVA_OPTIONS=("-DAPP_DIR=$APPDIR")
# Only show the splash screen when no options are present
if [[ "$@" != *"--"* ]] ; then
JAVA_OPTIONS+=("-splash:$APPDIR/lib/splash.png")
fi
"$JAVA" "${JAVA_OPTIONS[@]}" processing.app.Base "$@"
also: das ist ein ...?
ed
wiki schreibts kurz und bündig:
Zitat:Programmiersprache
C und C++ und AVR-Assembler (IDE: Java)
Don't worry about getting older. You're still gonna do dump stuff...only slower
Member
Beiträge: 896
Themen: 43
Registriert: Feb 2017
Könnt ihr eigentlich Programmieren?
Wenn ja. Was alles?
Im Übrigen bin ich der Meinung: Karthago muss zerstört werden.
Member
Beiträge: 10.734
Themen: 45
Registriert: Jan 2008
Alles, was ich brauche. Den Rest vergesse ich sofort wieder
. Nach Ausflügen in Fortran, Turbo Pascal, C und Assembler muss ich immer wieder nachschlagen, welche Syntax die richtige ist... Hauptsache,
die Frisur das Schema sitzt!
Administrator
Beiträge: 10.251
Themen: 165
Registriert: Jun 2005
(06.03.2019, 02:47 PM)kahlo schrieb: Alles, was ich brauche. Den Rest vergesse ich sofort wieder . Nach Ausflügen in Fortran, Turbo Pascal, C und Assembler muss ich immer wieder nachschlagen, welche Syntax die richtige ist... Hauptsache, die Frisur das Schema sitzt!
auch so in etwa.
gelernt , an der Uni, in Fortran.
dann Basic...weil so ähnlich ist (und damals auf dem CPC64 standard).
dann 8051-Assembler, 68000-Assembler und AVR-Assembler.
dann Turbo Pascal,
dann C ...zwangsweise. und Turbo-C .
wobei ich C eigentlich nicht ausstehen kann... ->
http://www.henning-thielemann.de/CHater.html
Zitat:Ich habe gehört, dass es C-Hasser gibt. Was hat es damit auf sich?
C ist eine maschinennahe Programmiersprache, die Anfang der 1970er von Ken Thompson und Dennis Ritchie entwickelt wurde. Tatsächlich breitet sich C-Hassen immer weiter aus, weil immer mehr Menschen bewusst wird, dass viele Sicherheitslöcher auf das Konto dieser Sprache und seiner Standardbibliotheken gehen.
Da ein Betriebssystem als unterster Baustein einer Softwarearchitektur besonders zuverlässig sein muss, eignen sich unsichere, fehlerprovozierende Sprachen dafür am wenigsten. Weil aber C genau diese Eigenschaften in sich vereint, sind alle mir bekannten Betriebssysteme damit programmiert und deswegen wird C auch Systemprogrammierungssprache genannt.
Zitat:Wie wird man C-Hasser?
Die nachhaltigste Methode ist sicher das Programmieren in C. Nachdem man etliche Stunden oder vielleicht Tage mit dem Suchen nach Abstürzen verbracht hat, die nur gelegentlich auftreten, oder wenn einem manche dummen Fehler immer wieder unterlaufen, die so offensichtlich sind, dass man sich fragt, ob ein Übersetzer diese nicht auch selbst aufdecken kann, dann kommen erste Zweifel an der C-Philosophie.
und sonst, just for fun: Forth, Pure-Basic, Python...
Don't worry about getting older. You're still gonna do dump stuff...only slower
Member
Beiträge: 15.904
Themen: 70
Registriert: Jul 2009
(06.03.2019, 02:37 PM)r0cknrolla schrieb: Könnt ihr eigentlich Programmieren?
Wenn ja. Was alles?
Angefangen mit 8048 Assembler für ne DCF-77 Uhr.
Ein CP/M Bios in Z80 Assembler
Verschiedene SystemTreiber in 8086-Assembler zu DOS-Zeiten
Turbo Pascal
8051 mit C-Compiler von Keil.
Verschiedene Steuerungen mit Z180, in ASM programmiert...
All dies ist Schnee von gestern und längst vergessen.
Heutzutage mal ab und zu ein kleines Mikrocontroller-Projekt in C.
Oder auch mal soundkarten-Applikationen mit Python.
...mit der Lizenz zum Löten!