• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


Sensor , zb Temperatur ..usw.
#41
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.
 
Reply
#42
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.
 
Reply
#43
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!
 
Reply
#44
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  Big Grin .

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.
 
Reply
#45
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!
 
Reply
#46
(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  Confused . Die Arduino-Abstraktionsebene ist also da, aber es geht immer noch mehr, wenn man will. Oder kann...
 
Reply
#47
(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  Confused . 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.  Tongue
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
 
Reply
#48
Zitat:verpackt in eine Java-skript-shell...

Wirklich wirklich? überrascht
 
Reply
#49
(06.03.2019, 01:42 PM)christianw. schrieb:
Zitat:verpackt in eine Java-skript-shell...

Wirklich wirklich?  überrascht

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 ...?  Tongue

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
 
Reply
#50
Könnt ihr eigentlich Programmieren?

Wenn ja. Was alles?
Im Übrigen bin ich der Meinung: Karthago muss zerstört werden.
 
Reply
#51
Alles, was ich brauche. Den Rest vergesse ich sofort wieder  Big Grin . 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!
 
Reply
#52
(06.03.2019, 02:47 PM)kahlo schrieb: Alles, was ich brauche. Den Rest vergesse ich sofort wieder  Big Grin . 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...
Tongue
    Don't worry about getting older.  You're still gonna do dump stuff...only slower
 
Reply
#53
(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!
 
Reply