Forum: Mikrocontroller und Digitale Elektronik Potentiometer an Mikrocontrollter


von Karim A. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich habe 8 LEDs an meinen Mikrocontroller angeschlossen und möchte das 
diese nacheinander an und aus Leuchten. Dafür muss ich in der C-Progr. 
_delay_ms(x) benutzen, um die Zeitabstände einzustellen. Die 
Zeitabstände soll der Potentiometer bestimmen.

Nun weis ich nicht ob ich den das Potentiometer erstens richtig 
angeschlossen habe (siehe Screenshot) und zweitens:

Wie lese ich den Wert ein und wandel das in Zeit um?

Habe den Potentiometer an A0 angeschlossen, weil es eine analoge PIN 
ist.

Habe ich PIN A0 richtig als INPUT definiert?

- arbeite mit Atmel Studio
- atmega2560


int main(void)
{
  DDRB = 0xFF;      //Port B Output
  DDRA &= ~(1<<PC0);    //Pin PA0 Input

  int t=200;
  int arr[8] = {1,2,4,8,16,32,64,128};
  int pinindex = -1;
  int poti = 0;      //Wert Potentiometer

// Potentiometer von Pin 0 einlesen (Wert zwischen 0 und 1023)
  poti = PINA0(0);

von Alexander K. (Gast)


Lesenswert?

Du brauchst ein Libary die ein analog.Read ausführt.

In B4R weiß ich wie das geht. :)

Wenn du den Wert hast, einfach die Parameter selbst festlegen.

z.b.
Wenn Wert = 0 then Zeit = 10
Wenn Wert = max then Zeit = 1000

Delay (zeit)



Gruß

  Pucki

von Karim A. (Gast)


Lesenswert?

Alexander K. schrieb:
> Du brauchst ein Libary die ein analog.Read ausführt.
Hab die jetzt gefunden. Un weiter ? :)

> Wenn du den Wert hast, einfach die Parameter selbst festlegen.
>
> z.b.
> Wenn Wert = 0 then Zeit = 10
> Wenn Wert = max then Zeit = 1000
Danke :)

von sid (Gast)


Lesenswert?

wenn dein mikrocontroller ein Arduino derivat ist,
ist analogRead(Pin) Dein Freund;
und wenn Du vorher kürzeste und längste Zeit
definierst
1
minT = 1000; //in ms
2
maxT = 100000; //ebenfalls in ms
dann kannst Du Arduinos mapping funktion nutzen
1
val = analogRead(0);
2
delayTime = map(val, 0, 1023, minT, maxT);
um dann schlicht mit
1
delay(delayTime);
zu warten;
das spart Dir die if conditions um die Wartezeit festzulegen

benutzt Du keine Arduino bibliothek sollte
eine mundgemalte map-funktion dasselbe ermöglichen:
1
long map(long x, long xmin, long xmax, long tomin, long tomax)
2
{
3
    return (x - xmin) * (tomax - tomin) / (xmax - xmin) + tomin;
4
}
(falls ich mich  jetzt nicht vertue heisst das...)
wenn Du die nur hier nutzt kannst Du die auch direkt auf die 10bit 
deines AD Wandlers fixieren
1
long mapTenBit(long x, long tomin, long tomax)
2
{
3
    return x * (tomax - tomin) / 1023 + tomin;
4
} 
5
// dann natürlich aufrufen mit
6
delayTime = mapTenBit(val, minT, maxT);

'sid

von Timmo H. (masterfx)


Lesenswert?

Alexander K. schrieb:
> Du brauchst ein Libary die ein analog.Read ausführt
Krass. Wie habe ich es seit Jahrzehnten bloß geschafft das ganze ohne 
extra library zu machen? Ich vermute, dass ich das Datenblatt gelesen 
habe

von sid (Gast)


Lesenswert?

Timmo H. schrieb:
> Wie habe ich es seit Jahrzehnten bloß geschafft das ganze ohne
> extra library zu machen? Ich vermute, dass ich das Datenblatt gelesen
> habe

vermutlich :D

Aber möchtest Du Ugur erklären wie man das macht
ohne sein µC zu kennen und damit im Datenblatt nachschlagen zu können;
oder ist es nicht einfacher ihn an ein library zu verweisen,
was ihm und Dir die Arbeit erleichtert?

Ja, man könnte nun ggf streiten ob "brauchen" das richtige Verb in 
diesem Zusammenhang ist;
ob "könntest benutzen" nicht eventuell besser passen würde..
aber diese Diskussion gehörte wohl in ein "sprachliche Finesse"-Forum ;)

shalömmchen

'sid

von Stefan F. (Gast)


Lesenswert?

sid schrieb:
> Aber möchtest Du Ugur erklären wie man das macht
> ohne sein µC zu kennen und damit im Datenblatt nachschlagen zu können

Ich bin nicht Timmo, trotzdem antworte ich mal als ob du mich 
angeschrieben hättest:

Nein, möchte ich nicht. Er soll erst seinen Mikrocontroller kennen 
lernen, indem er das Datenblatt liest. Danach helfe ich gerne weiter.

von Stefan F. (Gast)


Lesenswert?

Ugur A. schrieb:
>> Du brauchst ein Libary die ein analog.Read ausführt.
> Hab die jetzt gefunden. Und weiter ? :)

Was genau hast du gefunden? Gibt es dazu keine Anleitung?

von Karim A. (Gast)


Lesenswert?

Danke für die ausfürliche Antwort :) Ich werd's mal gleich nocmal 
versuchen :)

von Karim A. (Gast)


Lesenswert?

Timmo H. schrieb:
> Alexander K. schrieb:
>> Du brauchst ein Libary die ein analog.Read ausführt
> Krass. Wie habe ich es seit Jahrzehnten bloß geschafft das ganze ohne
> extra library zu machen? Ich vermute, dass ich das Datenblatt gelesen
> habe
Es würde mir viel leichter fallen, wenn du mir dann sagen würdest, wie 
es ohne eine extra library gemacht wird. Ich denke 80% der Benutzer 
fragen deshalb mal in Foren, weil man einfach keine Lust hat sich 2 
Stunden die Datenblätter zu lesen und versuchen zu verstehen..

von Karim A. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ugur A. schrieb:
>>> Du brauchst ein Libary die ein analog.Read ausführt.
>> Hab die jetzt gefunden. Und weiter ? :)
>
> Was genau hast du gefunden? Gibt es dazu keine Anleitung?
Hab zwar die library dazu gefunden, wie man auf die analogen PINs 
zugreift, aber verstehen und anwenden kann ich leider nicht.

Ich arbeite zum ersten mal mit Mikrocontrollern und versuche mir das 
anzulernen..

von W.A. (Gast)


Lesenswert?

Alexander K. schrieb:
> Du brauchst ein Libary die ein analog.Read ausführt.
Es ist völlig egal, ob die Funktion zum Abtasten des Signals in einer 
Library steht oder im eigenen Code. Und natürlich darf die Methode einen 
beliebigen anderen Namen haben.

von Karim A. (Gast)


Lesenswert?

Karim A. schrieb:
> Stefan ⛄ F. schrieb:
>> Ugur A. schrieb:
>>>> Du brauchst ein Libary die ein analog.Read ausführt.
>>> Hab die jetzt gefunden. Und weiter ? :)
>>
>> Was genau hast du gefunden? Gibt es dazu keine Anleitung?
> Hab zwar die library dazu gefunden, wie man auf die analogen PINs
> zugreift, aber verstehen und anwenden kann ich leider nicht.
Das ist die library dafür
#include <avr/interrupt.h>

von Einer K. (Gast)


Lesenswert?

Karim A. schrieb:
> Das ist die library dafür
> #include <avr/interrupt.h>

Die hat nur herzlich wenig mit analogen Daten zu tun.

von Timmo H. (masterfx)


Lesenswert?

Karim A. schrieb:
> Timmo H. schrieb:
>> Alexander K. schrieb:
>>> Du brauchst ein Libary die ein analog.Read ausführt
>> Krass. Wie habe ich es seit Jahrzehnten bloß geschafft das ganze ohne
>> extra library zu machen? Ich vermute, dass ich das Datenblatt gelesen
>> habe
> Es würde mir viel leichter fallen, wenn du mir dann sagen würdest, wie
> es ohne eine extra library gemacht wird. Ich denke 80% der Benutzer
> fragen deshalb mal in Foren, weil man einfach keine Lust hat sich 2
> Stunden die Datenblätter zu lesen und versuchen zu verstehen..
https://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC

: Bearbeitet durch User
von STK500-Besitzer (Gast)


Lesenswert?

sid schrieb:
> Aber möchtest Du Ugur erklären wie man das macht
> ohne sein µC zu kennen und damit im Datenblatt nachschlagen zu können;
> oder ist es nicht einfacher ihn an ein library zu verweisen,
> was ihm und Dir die Arbeit erleichtert?

Ist doch ganz einfach: "Guck ins Datenblatt!"
Vielleicht auch einfach mal grundlegende Dinge angucken?
Für soziemlich jeden Mikrocontroller findet man irgendwo im Internet ein 
Tutorium. Wenn man nicht mal dazu in der Lage ist, sollte man mal 
überlegen, ob man sich nicht eine andere Beschäftigung suchen sollte.
Und dann kommt immer wieder gerne der Spruch "Das sollen wir für den 
Lehrer machen. Der hat das im Unterricht aber gar nicht angesprochen."

Also:
als erstes den Controller benennen!
dann einen Link zum Datenblatt (manche Hersteller haben auch eine ganze 
Sammlung zu dem Thema...).

von STK500-Besitzer (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Also:
> als erstes den Controller benennen!
> dann einen Link zum Datenblatt (manche Hersteller haben auch eine ganze
> Sammlung zu dem Thema...).

OK, wurde schon genannt... (mein ADHS lässt grüßen)

von Stefan F. (Gast)


Lesenswert?

Karim A. schrieb:
> Es würde mir viel leichter fallen, wenn du mir dann sagen würdest, wie
> es ohne eine extra library gemacht wird.

Steht im Datenblatt. Darüber hinaus kann ich Dir Tutorials empfehlen:

https://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC
http://stefanfrings.de/mikrocontroller_buch/index.html

> Ich denke 80% der Benutzer fragen deshalb mal in Foren, weil
> man einfach keine Lust hat sich 2 Stunden die Datenblätter zu
> lesen und versuchen zu verstehen..

Da hast du bestimmt Recht. Und 80% der Helfer wollen sehen, dass du doch 
ins Datenblatt schaust, weil das immer die erste Anlaufstelle für 
Informationen ist. Wer zu faul ist, den Umgang mit seinem 
Mikrocontroller zu erlernen, der soll ihn nicht benutzen.

Wir lassen ja auch nur Leute Auto-fahren, die es gelernt haben.

von Stefan F. (Gast)


Lesenswert?

Karim A. schrieb:
>> Was genau hast du gefunden? Gibt es dazu keine Anleitung?
> Hab zwar die library dazu gefunden, wie man auf die analogen PINs
> zugreift, aber verstehen und anwenden kann ich leider nicht.

Welche Library?

Du kannst es Dir vielleicht nicht vorstellen, aber es gibt da sehr viele 
und die funktionieren unterschiedlich. Soll ich Dir jetzt alle erklären? 
Das kann ich gar nicht, weil ich nur einige davon kenne. Und so wird es 
allen Helfern hier gehen.

Also werde sehr viel konkreter, nur so kann dir geholfen werden.

> Ich arbeite zum ersten mal mit Mikrocontrollern und
> versuche mir das anzulernen..

Warum fängst du dann mit dem größten/komplexesten/teuersten aus der 
Serie an? Finde ich nicht sehr logisch. Ich habe das Autofahren 
schließlich auch nicht in einem LKW gelernt.

von Stefan F. (Gast)


Lesenswert?

Karim A. schrieb:
> Das ist die library dafür
> #include <avr/interrupt.h>

Nein, ganz sicher nicht. Die hat mit ADC nur marginal zu tun.

Die Doku zur AVR Library ist dort: 
https://www.nongnu.org/avr-libc/user-manual/index.html

Und wenn du das mal überfliegst wirst du sehen, dass da für den ADC gar 
keine Funktionen drin sind. Musst du dir selber schreiben oder von einer 
andere Quelle downloaden. Selber schreiben anhand der Infos im 
Datenblatt ist letztendlich einfacher - glaube es mir.

von STK500-Besitzer (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Warum fängst du dann mit dem größten/komplexesten/teuersten aus der
> Serie an? Finde ich nicht sehr logisch. Ich habe das Autofahren
> schließlich auch nicht in einem LKW gelernt.

Es ist immer noch ein AVR. Worin unterscheidet der sich von einem 
anderem ATmega bzgl. Programmierung in C?

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich habe das Autofahren
> schließlich auch nicht in einem LKW gelernt.

Hmmm...
So irgendwie mit 11 bis 12 angefangen Trecker mit 2 Anhängern zu fahren.

Ist irgendwie näher am LKW, als an einem Smart.


------------



STK500-Besitzer schrieb:
> Worin unterscheidet der sich von einem
> anderem ATmega

Das Datenblatt ist erheblich umfangreicher.
Was sich bei einer ausgeprägten Datenblattlesehemmung arg 
kontraproduktiv auswirkt.

von Stefan F. (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Es ist immer noch ein AVR. Worin unterscheidet der sich von einem
> anderem ATmega bzgl. Programmierung in C?

Vor allem im Preis. Wenn man ihn schrottet, wird es unnötig teuer. Und 
wenn man keine Lust auf das umfangreiche Datenblatt hat, sollte man sich 
mal einen kleinen AVR angucken, da ist das Datenblatt auch viel kürzer.

Ja, das ändert nichts wesentliches an der Programmierung, aber hilft 
vielleicht, erste Hemmungen zu überwinden.

von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> So irgendwie mit 11 bis 12 angefangen Trecker mit 2 Anhängern zu fahren.

Sicher hast du davor zuerst das Trekker-Fahren ohne Anhänger gelernt, 
und das wohl auch nicht gleich auf dem größten Modell.

von Stefan F. (Gast)


Lesenswert?

Ich möchte noch etwas ergänzen:

Mir ist durchaus bewusst, dass nicht jeder diese Datenblätter verstehen 
kann. Sie sind auf englisch geschrieben und voller Fachwörter und 
Abkürzungen die für den Anfang sicher nicht einfach sind. Aber da muss 
man durch, wenn man mit diesen Bauteilen ernsthaft arbeiten will.

Und wenn nicht? Dann empfehle ich Arduino! Arduino wurde genau dafür 
gemacht, den Einstieg zu vereinfachen. Arduino vereinfacht die Sache, 
indem Funktionen und Sachverhalte reduziert/vereinfacht dargestellt 
werden. Dort gibt es die oben genannte Funktion analogRead().

von Wolfgang (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wir lassen ja auch nur Leute Auto-fahren, die es gelernt haben.

Da habe ich manchmal ernsthafte Zweifel dran.
Für viele Leute reicht es, im Besitz des Führerscheines zu sein.

von STK500-Besitzer (Gast)


Lesenswert?

[OT]
Stefan ⛄ F. schrieb:
> Sicher hast du davor zuerst das Trekker-Fahren ohne Anhänger gelernt,
> und das wohl auch nicht gleich auf dem größten Modell.

Eher auf einem "modernen" Trecker als z.B. auf einem von Porsche.
Der hatte weder Servolenkung noch Bremskraftverstärker.
Mit 11/12 Jahren dürfte man noch nicht dauerhaft die Kraft für sowas 
haben.
Ist jetzt aber nur vermutet.
[/OT]

Arduino Fanboy D. schrieb:
> Das Datenblatt ist erheblich umfangreicher.
> Was sich bei einer ausgeprägten Datenblattlesehemmung arg
> kontraproduktiv auswirkt.
Wenn man von grundlegenden Funktionen keine Ahnung hat, ist der 
Datenblattumfang doch eher irrelevant - da steht man wie der Ochs' vorm 
Berg.

Stefan ⛄ F. schrieb:
> Vor allem im Preis. Wenn man ihn schrottet, wird es unnötig teuer. Und
> wenn man keine Lust auf das umfangreiche Datenblatt hat, sollte man sich
> mal einen kleinen AVR angucken, da ist das Datenblatt auch viel kürzer.
>
> Ja, das ändert nichts wesentliches an der Programmierung, aber hilft
> vielleicht, erste Hemmungen zu überwinden.

Irgendwas wird ihn dazu bewegt haben, diesen Controller zu verwenden.
Ich habe damals auch mein erstes Projekt mit einem mega162 realisiert.
Das Zweite hatte dann schon einen mega644.

von Stefan F. (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Irgendwas wird ihn dazu bewegt haben, diesen Controller zu verwenden.

Sicher, ich wollte es ja nur mal kurz erwähnen. Grundsätzlich falsch war 
die Wahl sicher nicht.

von Karim A. (Gast)


Lesenswert?

Ich hab mir diesen Controller auch nicht von irgendwo ausgesucht.. Ist 
für die Uni..
 ich dachte mir das könnte doch nicht schwer sein eine einfache analoge 
Pin, deshalb habe ich, ohne das Datenblatt zu lesen, in die Runde 
gefragt. Für so eine kleine Sache schaut man doch nicht ins Datenblatt, 
sondern guckt mal eben im Internet..

Wollte schließlich nur wissen, wie ich den Wert von meinem Potentiometer 
vom analogen PIN auslese das wars..

Naja dann schau ich mal wie ich das irgendwie hinkriege..

Danke für die Tutorials.

von Stefan F. (Gast)


Lesenswert?

Karim A. schrieb:
> Für so eine kleine Sache schaut man doch nicht ins Datenblatt,

Doch!

Man schaut sogar für viel kleinere Sachen ins Datenblatt.

Karim A. schrieb:
> Wollte schließlich nur wissen, wie ich den Wert von meinem Potentiometer
> vom analogen PIN auslese das wars..

Die Tutorials kannst du so schnell nicht gelesen haben. Verwende deine 
Zeit nicht mit diskutieren*, arbeite leiber die Tutorials durch.

*) Ich darf das, denn ich habe gerade nichts besseres zu tun

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Sicher hast du davor zuerst das Trekker-Fahren ohne Anhänger gelernt,
> und das wohl auch nicht gleich auf dem größten Modell.

Mit Anhänger!
Der Jüngste musste fahren, die Erwachsenen haben geladen.

Und ja, dunemals gehörte das Modell zu den größeren.
Ja, war nicht einfach.

Die heutigen großen, fahren sich dagegen kinderleicht. Da muss man nur 
einmal die ganzen Hebel und Einstellungen kapieren.

von BlaBla (Gast)


Lesenswert?

Was hat das alles nun mit dem Potentiometer zu tun? Wer keine Lust hat 
auf Fragen zu antworten, der wird doch hoffentlich nicht in diesem Forum 
dazu gezwungen.

von Stefan F. (Gast)


Lesenswert?

BlaBla schrieb:
>> Trekker fahren
> Was hat das alles nun mit dem Potentiometer zu tun?

So ist das eben in lockeren Diskussionsrunden ohne strenge Moderation.

Wer keine Lust darauf hat, muss ja nicht mitmachen.

von Einer K. (Gast)


Lesenswert?

BlaBla schrieb:
> Was hat das alles nun mit dem Potentiometer zu tun? Wer keine Lust
> hat
> auf Fragen zu antworten, der wird doch hoffentlich nicht in diesem Forum
> dazu gezwungen.

Ja, dein Beitrag ist da wirklich sehr lehrreich!
In Sachen Fachlichkeit kaum zu unterbieten.

Kennst du die Geschichte mit dem Splitter und dem Brett?

von Karim A. (Gast)


Lesenswert?

Bitte Thread löschen!!

von STK500-Besitzer (Gast)


Lesenswert?

Karim A. schrieb:
> Bitte Thread löschen!!

Warum?
Hast du inzwischen rausgefunden, wie man ein Poti mit Hilfe des ADCs 
ausliest?
Die Datenblätter von Atmel sind noch recht übersichtlich aufgebaut und 
enthalten sogar Beispiele für verschiedene verschiedene Komponenten 
(z.B. USART).

von Erklärbär (Gast)


Lesenswert?

Schade, daß ich nichts zur Erklärung beitragen kann, denn die Gefahr, 
daß mein Beitrag nicht die von der Moderation normierte Schöpfungshöhe 
erreicht und darauf hin gelöscht wird, ist mir zu hoch.

Nur Stichworte für den Autor:
-ADC einlesen
-den ADC Bereich 0-1023 in 8 Bereiche einteilen
-Mit Select case einen von den 8 Bereichen auswählen und jeweilige LED 
ansteuern
(ob und wie das in C geht, -keine Ahnung)

viel Erfolg, trotz der Knüppel-Werfer hier.

:((

von Stefan F. (Gast)


Lesenswert?

Karim A. schrieb:
> Bitte Thread löschen!!

Warum, nur weil deine Frage beantwortet wurde oder du die Lust am Thema 
verloren hast?

Ich glaube, du hast den Sinn des öffentlichen Diskussionsforums 
missverstanden. Es dient nicht primär dem Thread-Eröffner, sondern der 
Allgemeinheit. Später finden hier andere bereits geschriebene Antworten 
auf ihre Fragen!

Deren Beiträge jetzt einfach zu löschen, wäre eine große 
Respektlosigkeit. Es würde rasch zum Tod des Forum führen, weil nur noch 
Fragen gestellt werden aber niemand mehr Bock hat, sie zu beantworten.

Wenn du möchtest, dass ich meine Zeit nur für dich persönlich opfere, 
dann bezahle mich gefälligst dafür!

von Erklärbär (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Karim A. schrieb:
> Später finden hier andere bereits geschriebene Antworten
> auf ihre Fragen!
>
> Deren Beiträge jetzt einfach zu löschen, wäre eine große
> Respektlosigkeit. Es würde rasch zum Tod des Forum führen, weil nur noch
> Fragen gestellt werden aber niemand mehr Bock hat, sie zu beantworten.

Wie hast Du diesen Text überhaupt verfassen können, angesichts der 
Lachtränen in den Augen?

WER sollte aus den Schmähungen und dem blöden Gesülz bis zum jetzigen 
Zeitpunkt irgendeinen Nutzen ziehen?

Zyniker ist ein Scheiß-Beruf, mein Freund !

>
> Wenn du möchtest, dass ich meine Zeit nur für dich persönlich opfere,
> dann bezahle mich gefälligst dafür!

Ich sag Dir was: Bevor ich Dich mit IRGENDETWAS beauftragte, würde ich 
das lieber am 2. Weihnachtsfeiertag im Zelt auf dem Nanga Parbat selbst 
tun.

von Stefan F. (Gast)


Lesenswert?

Erklärbär schrieb:
> WER sollte aus den Schmähungen und dem blöden Gesülz bis zum jetzigen
> Zeitpunkt irgendeinen Nutzen ziehen?

Der Thread kann in ferner Zukunft immerhin noch als Beispiel für den 
Zeitgeist 2020 dienen. Ob das ein gutes oder schlechtes Beispiel sein 
wird, werden wir erst später wissen.

Erklärbär schrieb:
> Ich sag Dir was: Bevor ich Dich mit IRGENDETWAS beauftragte, würde ich
> das lieber am 2. Weihnachtsfeiertag im Zelt auf dem Nanga Parbat selbst
> tun.

Jetzt, wo ich es weiß: Du könntest dort unerwarteten Besuch bekommen. 
Wir sehen uns!

von Rainer V. (a_zip)


Lesenswert?

Karim A. schrieb:
> Bitte Thread löschen!!

Jemand, der lediglich Bausteine (Soft- wie Hardware) zusammenklöppeln 
möchte, ist einfach im falschen Forum! Was hilft es denn, immer wieder 
gebetsmühlenartig "datenblatt lesen" ect. zu schreiben, wenn der TO das 
nicht will?! Verlorene Liebesmüh :-)
Gruß Rainer

von Stefan F. (Gast)


Lesenswert?

Immerhin findet man hier auch Verweise auf Tutorials und den Hinweis, 
das Arduino für Datenblatt-Verweigerer geeignet sein könnte.

von Karim A (Gast)


Lesenswert?

Nein meine Frage wurde weder beantwortet, noch habe ich die Lust am 
Thema verloren. Ich wusste nicht das in diesem Forum Leute gibt die die 
Fragen von einem Anfänger mit "Lies dir das Datenblatt" beantworten.

Foren dienen dazu, sowohl über allgemeine Themen zu diskutieren, als 
auch die Probleme von anderen Menschen, die nicht so viel Ahnung über 
das Thema haben, aber sich interessieren zu lösen.

Das bedeutet aber nicht das du dazu gezwungen wirst! Und bezahlen kann 
dich dein Arbeitgeber, ich hab dich nicht dazu gezwungen deine Zeit für 
mich zu opfern.

In anderen Foren wurden mir auch ganz normale Fragen ganz einfach und 
konkret beantwortet, als immer "Datenblatt lesen". Wenn hier allgemeine 
Themen diskutiert werden sollen und explizite Fragen zum Controller bzw. 
Programmierung nicht beantwortet werden, dann gehört mein Thread auch 
nicht hier rein und kann gelöscht werden.

Es gibt Menschen die können mit 1000 Seiten Text lernen und es gibt 
Menschen die lernen einiges durch kleine Projekte..

Deine RESPEKTLOSIGKEIT kannst du dir ersparen, denn diese Eigenschaft 
hast du bereits bewiesen!

Deshalb nochmal, bitte diesen Thread löschen, damit nicht andere 
Anfänger,  die von diesem Forum Hilfe benötigen, sich sofort 
zurückziehen, nachdem die diese Antworten lesen!

von Stefan F. (Gast)


Lesenswert?

Karim A schrieb:
> Ich wusste nicht das in diesem Forum Leute gibt die die
> Fragen von einem Anfänger mit "Lies dir das Datenblatt" beantworten.

Es gibt auch Leute, die antworten, dass du zu blöd bist wenn du Fragen 
stellen musst. Sei nicht so schnell eingeschnappt, im allen 
Diskussionsforen geht es eher grob zu!

Was ist den mit den Tutorials und dem Hinweis auf Arduino. Kannst du 
damit auch nichts anfangen?

von Uwe G. (scd)


Lesenswert?

Erklärbär schrieb:
> WER sollte aus den Schmähungen und dem blöden Gesülz bis zum jetzigen
> Zeitpunkt irgendeinen Nutzen ziehen?
>
> Zyniker ist ein Scheiß-Beruf, mein Freund !

Karim A schrieb:
> Deine RESPEKTLOSIGKEIT kannst du dir ersparen, denn diese Eigenschaft
> hast du bereits bewiesen!

Ist Paul Baumann wieder unterwegs?

Mehrere Nutzernamen im selben thread sind nicht erlaubt.

von Einer K. (Gast)


Lesenswert?

Ich finde der Thread muss erhalten bleiben!

Dient er doch als prächtiges, abschreckendes, Beispiel dafür, wie man 
sich selber eine Frikadelle aufs Knie nagelt, wenn man seine 
DokuLeseVerweigerung ausleben will.

von STK500-Besitzer (Gast)


Lesenswert?

Karim A schrieb:
> Es gibt Menschen die können mit 1000 Seiten Text lernen und es gibt
> Menschen die lernen einiges durch kleine Projekte..
Ja, kleine Projekte. Das heißt aber nicht, dass jemand anders die Lösung 
explizit auf einem silbernen Tablett liefert.

> Deine RESPEKTLOSIGKEIT kannst du dir ersparen, denn diese Eigenschaft
> hast du bereits bewiesen!
Respekt muss man sich verdienen, indem man etwas leistet. Dazu gehört 
sicherlich nicht "Rumschnorren".

> Deshalb nochmal, bitte diesen Thread löschen, damit nicht andere
> Anfänger,  die von diesem Forum Hilfe benötigen, sich sofort
> zurückziehen, nachdem die diese Antworten lesen!

Und dann studierst du an der Uni?
Welches Fach denn?

von Stefan F. (Gast)


Lesenswert?

Karim,
was ist den mit den Tutorials und dem Hinweis auf Arduino. Kannst du
damit auch nichts anfangen?

von c-hater (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:

> Karim,
> was ist den mit den Tutorials und dem Hinweis auf Arduino. Kannst du
> damit auch nichts anfangen?

@Karim

Arduinio is the safe way to the abyss. Not more and not less.

von Stefan F. (Gast)


Lesenswert?

Der c-hater spielt seine Rolle heute mal wieder ganz besonderer Inbrunst 
- nicht nur in diesem Thread.

von Joachim B. (jar)


Lesenswert?

Stefan ⛄ F. schrieb:
> Man schaut sogar für viel kleinere Sachen ins Datenblatt.

und sollten die mal fehlerhaft sein (was natürlich NIE vorkommt) so 
findet man die Lösung heute auch im Internet!

von Alexander K. (Gast)


Lesenswert?

Also ich entschuldige mich das ich helfen wollte.

ICH brauche keine echte Libary sondern nur ein Harken setzen und schon 
steht mir so einen Kleinigkeit zu Verfügung.

Aber ich programmiere die Teile auch nur INDIREKT mit der Arduino-Ide.
Also mit einen VOR-Compiler der den Arduino-Ide-Code erzeugt. Die 
Arduino-Ide compiliert "richtig" und schiebt ihn dann in den Chip.

Was dazu führt das ich keine blöden geschweiften Klammern brauche, und 
auch sehr sehr selten eine Arduino-Libs.

Ich bin faul und mache mir das Leben einfach. So einfach ist das.

Gruß

   Pucki

von HBose (Gast)



Lesenswert?

Hallo,

es ist doch so einfach. Den richtigen Prozessor, den richtigen 
Treibertransistor und etwas Software schon kann man mit einem Poti LED 
per PWM steuern.

Die Schaltung ist für die Armaturenbrettbeleuchtung eines MG Roadster 
Bj. 1954 entworfen worden mit Minus am Chassis. Normalerweise Plus am 
Chassis und das Drahtpoti gab regelmässig den Geist auf.

Salu Hans
PS: C-Freaks und Arduino Geplagte bitte wegschauen, damit kein Neid 
aufkommt :))

von Alexander K. (Gast)


Lesenswert?

HBose schrieb:
> PS: C-Freaks und Arduino Geplagte bitte wegschauen, damit kein Neid
> aufkommt :))

Der Code sieht nach BASCOM aus.  Habe ich Recht ?

Gruß

   Pucki

von Stefan F. (Gast)


Lesenswert?

HBose schrieb:
> C-Freaks und Arduino Geplagte bitte wegschauen,
> damit kein Neid aufkommt

Wie albern! Du verwendest ein Framework. Das kann man z.B. mit Arduino 
ebenfalls tun und da wäre der äquivalent Quelltext sogar noch deutlich 
kürzer und einfacher zu verstehen.

von HBose (Gast)


Lesenswert?

Hallo,

ja BASCOM! Trotz fast 30 Jahren C-Programmierung, nehme ich für private 
Projekte BASCOM. Ist einfacher und man schleppt nicht so viel fremden 
Code mit, den man nicht kennt.

2017 (Renteneintritt) wurde bei meinem Ex Arbeitgeber C als 
Programmiersprache verboten wegen zu hoher Wartungskosten und nicht 
nachvollziehbarem Code.

Selbst die Programmierer wussten nach 4 Wochen nicht mehr was sie da 
zusammen codiert hatten. War immer lustig in Krisensitzungen wenn es mal 
wieder um kapitale Bugs ging.

Salu Hans

von HBose (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das kann man z.B. mit Arduino
> ebenfalls tun und da wäre der äquivalent Quelltext sogar noch deutlich
> kürzer und einfacher zu verstehen.

Dann mach mal :)))!!!

Salu Hans

von Stefan F. (Gast)


Lesenswert?

HBose schrieb:
> Dann mach mal
1
void setup()    
2
{                          
3
    pinMode( 6 , OUTPUT);    
4
}    
5
6
void loop()
7
{
8
     int poti = analogRead(A0);     
9
     analogWrite(6 , map (poti , 0 , 1023 , 0 , 255 ) );   
10
}

Das ist der gesamte Quelltext!

Weißt du, ich habe nur marginal Ahnung von Arduino, aber du noch 
weniger. Sei ein bisschen vorsichtiger, bevor du hier über anderer Leute 
Arbeit ablästerst. Der Schuss könnte nach hinten losgehen und das ist 
dann nicht mehr lustig.

von HBose (Gast)


Lesenswert?

Hallo,

na wer schiesst denn da, willst du mir drohen? Benimm dich!! Dich hätte 
ich in den Kurs für "Sozialverträgliche Kommunikation" geschickt bevor 
du an einer Besprechung teilnehmen darfst!

Ich habe schon Arduinos programmiert da bist du noch mit nacktem Popo 
und Trömmelchen um den Weihnachtsbaum gelaufen :)))

Bau es auf und beweise das es funktioniert. Die Fehler in dem Code nenne 
ich dir aber nicht, die darfst du selber suchen ;).

Meine schwäbischen Chefs haben immer gesagt: "Ned schwätze, machen!!"

Salu Hans

von Stefan F. (Gast)


Lesenswert?

HBose schrieb:
> Benimm dich!!
> Die Fehler in dem Code nenne
> ich dir aber nicht, die darfst du selber suchen

Das ist echt zum fremdschämen. Ich klinke mich hier mal aus, bevor es 
noch hässlicher wird.

von Rainer V. (a_zip)


Lesenswert?

Karim A schrieb:
> Deshalb nochmal, bitte diesen Thread löschen, damit nicht andere
> Anfänger,  die von diesem Forum Hilfe benötigen, sich sofort
> zurückziehen, nachdem die diese Antworten lesen!

Als Student habe ich viel Mathe-Nachhilfe gegeben, meist von 
verzweifelten Eltern angeheuert und es gab immer zwei Probleme. Die 
Eltern und der Schüler..."Hilfestellung bei den Hausaufgaben wirds 
richten" und "ich kapiers nicht...was kapierst du nicht?? Alles" ...und 
das oft in der Abi-Klasse. Und trotz anständiger Bezahlung habe ich so 
manchen Job einfach hingeschmissen. Eine Frage der Nerven, genau wie 
hier etwa :-)
Gruß Rainer

von HBose (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das ist echt zum fremdschämen. Ich klinke mich hier mal aus, bevor es
> noch hässlicher wird.

gute Entscheidung! Ja die Gefahr für dich ist groß das du dich 
blamierst.

Meine Schaltung funktioniert und ist in der MG-Szene sehr beliebt um das 
Drahtpoti zu ersetzen.

Salu Hans
PS: Ein Rat von einem alten Sack: "Nicht immer den dicken Max machen, es 
gibt auch Leute die mehr können als man selber. Von denen kann man(n) 
dann lernen!". Das habe ich mein ganzes Berufsleben so gemacht! "Mit den 
Augen klauen", hat mein Ausbilder immer gesagt.

Salu Hans

von Joachim B. (jar)


Lesenswert?

Stefan ⛄ F. schrieb:
> int poti = analogRead(A0);

warum int?
kann der analogRead(A0); jemals negativ werden?

Es wird zwar funktioneren, aber klüger wäre ja beim Wertebereich 0-1023 
ein uint16_t, da sieht jeder gleich das es nie negative Werte gibt und 
auch abfragen <0 ist sinnlos.

von Alexander K. (Gast)


Lesenswert?

Wie wäre das denn. ;)

Ist die Programmiersprache in der ICH arbeite.

https://www.b4x.com/android/forum/threads/set-servo-angle-via-potentiometer-and-show-on-display.78411/

Hier wird über ein Poti ein Servo angesteuert und die Stellung auf den 
Display angezeigt.

Ca. 20 Zeilen Code (ich habe nicht gezählt) in einer Art Visual-Basic.

Inklusiv Schaltung (Fritzing).


Gruß

   Pucki

von Rainer V. (a_zip)


Lesenswert?

Alexander K. schrieb:
> Wie wäre das denn. ;)

Klasse Link!! Genau so etwas braucht der TO. Auf so einer Basis kann man 
dann auch vernünftig fragen oder?!
Gruß Rainer

von HBose (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

das Problem des MG Projektes ist nicht unbedingt der Code. "Viele Wege 
führen da nach Rom".
Es muss in das Potigehäuse passen sonst ist die H-Nummer weg, wegen 
nicht originalem Einbau ins Armaturenbrett ("Denkmalschutz"). Man darf 
eine Modernisierung nicht erkennen. Deshalb sieht die Platine auch etwas 
abenteuerlich aus. Wer da einen Arduino unterbringt kann zaubern.
Da bleibt nur native Aufbau ohne Overhead. Mit dem Arduino Geraffel 
bekommt man das nicht verbaut.

Salu Hasn

von Jacko (Gast)


Lesenswert?

Mit Library + NULL Verständnis kann man sich erzählen lassen,
wie man mit einem 100-Pin µC die Aufgabe eines damit total
gelangweilten 14-Pin-µCs löst.

Weil man NULL Vorstellung hat, was man den 100 Pins und der Logik
dahinter entlocken könnte. Und das, trotzdem man viel Schule vor
Corona hatte.

Logisch, dass die Kakerlake die Menschheit locker überleben wird.

von HBose (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

noch der Beweis dass das Ganze funktioniert. Siehe Video.

Salu Hans

von Alexander K. (Gast)


Lesenswert?

Ach nur so nebenbei.

Die Entwicklungsumgebung für dein Code/Link ist für lau.

Gruß

   Pucki

von Stefan F. (Gast)


Lesenswert?

HBose schrieb:
> noch der Beweis dass das Ganze funktioniert. Siehe Video.

Niemand hat in Frage gestellt, dass dein Programm funktioniert.

von HBose (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Niemand hat in Frage gestellt, dass dein Programm funktioniert.

Neidisch? ;) Den Beweis hast du ja noch nicht angetreten.

Merkst du eigentlich nicht das du dich immer mehr blamierst.

von Stefan F. (Gast)


Lesenswert?

Joachim B. schrieb:
>> int poti = analogRead(A0);
> warum int?

Weil die analogread() Funktion einen int zurückliefert. Wenn Dir das 
nicht gefällt, würde ich Dir empfehlen, das mit den Machern von Arduino 
zu diskutieren. Hier ist der falsche Ort dafür.

von Einer K. (Gast)


Lesenswert?

Joachim B. schrieb:
> Stefan ⛄ F. schrieb:
>> int poti = analogRead(A0);
>
> warum int?
> kann der analogRead(A0); jemals negativ werden?
>
> Es wird zwar funktioneren, aber klüger wäre ja beim Wertebereich 0-1023
> ein uint16_t, da sieht jeder gleich das es nie negative Werte gibt und
> auch abfragen <0 ist sinnlos.

Ich weiß nicht, wie du es hältst....
Meine Arduino AVR ADCs können sehr wohl negative Werte liefern.
Nicht alle, aber einige können das.
OK, OK, nicht mit den originalen analogRead().
Aber die kann man ja überladen
z.B. der Mega, Leonardo oder Micro hat differenzielle ADC

von Stefan F. (Gast)


Lesenswert?

HBose schrieb:
> Den Beweis hast du ja noch nicht angetreten.
> Merkst du eigentlich nicht das du dich immer mehr blamierst.

Ich merke da tatsächlich nichts. Wahrscheinlich blamiere ich mich damit, 
dass ich Dir noch antworte.

Schade, dass du die zahlreichen "Beweis"-Videos bei Youtube nicht finden 
konntest. Oder die zahlreichen Arduino Tutorials (auch auf arduino.cc) 
die es genau so erklären. Da wird ein weiteres Video wohl auch nichts 
nützen.

von Alle Achtung (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> HBose schrieb:
>> Den Beweis hast du ja noch nicht angetreten.
>> Merkst du eigentlich nicht das du dich immer mehr blamierst.
>
> Ich merke da tatsächlich nichts. Wahrscheinlich blamiere ich mich damit,
> dass ich Dir noch antworte.
>
> Schade, dass du die zahlreichen "Beweis"-Videos bei Youtube nicht finden
> konntest. Oder die zahlreichen Arduino Tutorials (auch auf arduino.cc)
> die es genau so erklären. Da wird ein weiteres Video wohl auch nichts
> nützen.

Zügle Deine Schnauze mal ein bisschen! So ein Grossmaul ist selbst hier 
selten -und das heißt schon etwas.

von Stefan F. (Gast)


Lesenswert?

Alle Achtung schrieb:
> Zügle Deine Schnauze mal ein bisschen!
> So ein Grossmaul ist selbst hier selten -und das heißt schon etwas.

Große Worte, kannst du ihnen denn etwas Sinn geben? Was ist an meinem 
(aus dem orignalen Tutorial kopierten) Arduino Beispielcode falsch?

von spess53 (Gast)


Lesenswert?

Hi

>Meine Arduino AVR ADCs können sehr wohl negative Werte liefern.

Das können alle AVRs mit 'Differential Input Channels'. Also AVRs die ab 
etwa 2002 herausgekommenen sind, lange bevor an Arduinos zu denken war,

MfG Spess

von Alle Achtung (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Alle Achtung schrieb:
>> Zügle Deine Schnauze mal ein bisschen!
>> So ein Grossmaul ist selbst hier selten -und das heißt schon etwas.
>
> Große Worte, kannst du ihnen denn etwas Sinn geben? Was ist an meinem
> (aus dem orignalen Tutorial kopierten) Arduino Beispielcode falsch?

1. Dein Code ist unvollständig und nur deshalb kleiner als der 
Bascom-Code von Hans.

2. Greifst Du in völlig unangebrachter Weise Leute an, die wirklich 
helfen und nicht das Forum 24h/d als Bühne für die eigene 
Selbstdarstellung nutzen.

3. Du bist ein Narzisst aus dem Lehrbuch und hältst Dich für ein 
Geschenk an den Rest der Menschheit.

Wenn ich Dir versichere, daß das nicht so ist, so stehen sicher etliche 
hinter mir und nicken.

von Stefan F. (Gast)


Lesenswert?

Alle Achtung schrieb:
> 1. Dein Code ist unvollständig und nur deshalb kleiner als der
> Bascom-Code von Hans.

Ist er nicht, solange du den (angeblichen) Fehler nicht aufzeigen 
kannst.

> 2. Greifst Du in völlig unangebrachter Weise Leute an, die wirklich
> helfen und nicht das Forum 24h/d als Bühne für die eigene
> Selbstdarstellung nutzen.

Ich greife niemanden an. Ich bin derjenige, der hier angegriffen wird. 
Ich antworte nur sachlich.

> 3. Du bist ein Narzisst aus dem Lehrbuch und hältst Dich für ein
> Geschenk an den Rest der Menschheit.

Für solche Feststellungen kennst du mich zu wenig, zudem steht es Dir 
nicht zu, andere so zu nennen.

Ich fühle mich gerade so, als ob ich zwei Irrenden erklären muss, dass 
die anderen 7,8 Milliarden Menschen nicht irre sind. Das ist wohl 
aussichtslos.

Oder ist es gar eine Person, die sich nicht an die Nutzungsbedingungen 
des Forums hält?

von Einer K. (Gast)


Lesenswert?

spess53 schrieb:
> lange bevor an Arduinos zu denken war,

Auch ist "int" der natürliche C++/C Datentype für integrale Zahlen.

"int" gibts immer.

Bei "uint16_t" kann man sich da nicht so sicher sein.
Weit verbreitet, ja.
Immer vorhanden, nein.

Auch ist "int" oft der effizienteste Datentype.
Egal ob ein int jetzt gerade mal 16, 32 oder 64 Bit breit ist.
(Ausnahme: 8Bit µC)

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Alle Achtung schrieb:
>> 1. Dein Code ist unvollständig und n.......
>
> Ist er nicht, solange du den (angeblichen) Fehler nicht aufzeigen
> kannst.

Hier muss ich dem Stefanus mal zustimmen, ob ich will, oder nicht.

Der Code ist komplett und lauffähig, sofern man einen Arduino verwendet, 
welcher diese Fähigkeiten auf den genannten Pins beherrscht.

Nach Anpassung der Pinbezeichner, dürfte das JEDER Arduino(oder 
kompatibler) sein.
Egal ob da ein AVR, ARM, ESP oder sonstwas am werkeln ist.

von HBose (Gast)


Lesenswert?

Hallo,

den Ärger habe ich durch die Fussnote meines ersten Postings ausgelöst.

Pardon! Stefan scheint da etwas empfindlich zu sein. Wusste ich ich 
nicht. Cooldown :)

Fakt ist aber dass, C-Programme und Ardunio Programme an der schlechten 
Qualität der Include Programme kranken.

Wenn es in meinem Arbeitsleben um Krissensitzungen ging waren es immer 
die Includs die aus Bequemlichkeit verwendet wurden.
Bei Arduino kann man sie zu 99% vergessen und in bestimmten C Umgebungen 
95%.
Das Problem liegt im System.  Man integriert Programmteile die man nicht 
selbst erzeugt hat und deswegen nicht zu 100% versteht, die schlecht 
programmiert sind und schlecht dokumentiert sind. Ganz übel ist das bei 
ARDUINO da ist ja nur Schrott unterwegs.

Beispiel:
Wenn ein Fahrzeug mit einem ABS System mit C Includs in der 
Programmierung, 45m Bremsweg hat. Bei gleichen äußeren und mechanischen 
Bedingungen und einer anderen Programmiersprache,  plötzlich nur noch 
32m Bremsweg hat, sind solche Schwächen von C nicht akzeptabel. Das ist 
lebensgefährlich.

Mein Ex-Arbeitgeber hat es verstanden und C inclusive Derivate verboten. 
Arduino kam nie zum Einsatz, selbst zum testen nicht.

Ich habe zum Schluß meines Berufslebens nur noch in einem 
Macro-Assembler programmiert. Keins meiner sicherheitsrelevanten 
Programme wurden jemals Bestandteil einer Scrum Krisensitzung :). Geht 
doch !!

Salu Hans

von Einer K. (Gast)


Lesenswert?

HBose schrieb:
> Stefan scheint da etwas empfindlich zu sein.

Du verkennst die Situation.
Stefan ist keinesfalls ein Arduino Vän!
Wenn ihn da einordnen, dann eher das Gegenteil davon.

Nee...
Wer sich gründlich daneben benommen hat, und das fortsetzt, das bist du.
Ganz alleine.

von Joachim B. (jar)


Lesenswert?

Arduino Fanboy D. schrieb:
> Ich weiß nicht, wie du es hältst....
> Meine Arduino AVR ADCs können sehr wohl negative Werte liefern.

ich weiss bei ATmega32 hatte ich diff mit GAIN mal genutzt um an einen 
Shunt den Battereiestrom zu messen.

Bei AnlogRead am Arduino noch nie genutzt, der einzige ATmega Arduino 
den ich habe ist der m1284p mighty mini, der kann das auch aber nie 
genutzt, ich denke da müsste ich die Atmel Studio Routinen nutzen?

Ist aber egal, bei AnalogRead las ich immer 0-1023.

von HBose (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Du verkennst die Situation.
> Stefan ist keinesfalls ein Arduino Vän!
> Wenn ihn da einordnen, dann eher das Gegenteil davon.
>
> Nee...
> Wer sich gründlich daneben benommen hat, und das fortsetzt, das bist du.
> Ganz alleine.

Ach du lieber Gott jetzt tauchen auch noch die Trolls oder 
Zweit-Accounts auf.
Wo bin ich denn hier nur gelandet?
Das ist ja fast Mobbing. Naja 50 Jahre Berufserfahrung scheinen hier 
nicht hin zu passen. Hier sind anscheinend nur "Aluhüte" geduldet :)))

Salu un Tschüss Hans

von Stefan F. (Gast)


Lesenswert?

HBose schrieb:
> Ach du lieber Gott jetzt tauchen auch noch die Trolls oder
> Zweit-Accounts auf.

Keineswegs. Der Arduino Fanboy ist jemand, mit dem ich oft 
leidenschaftlich gegen Arduino diskutiere. Er hat Recht, ich halte 
wirklich wenig von dem System. Aber immer wenn ich nicht 100% sauber 
argumentiere, weist er mich zurecht. Das kann er, denn er kennt sich mit 
Arduino sehr gut aus und weiß wie man es richtig (sicher, sinnvoll) 
verwendet.

von Joachim B. (jar)


Lesenswert?

Arduino Fanboy D. schrieb:
> OK, OK, nicht mit den originalen analogRead().

deswegen schrieb ich das ja,

https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/
The analog reading on the pin. Although it is limited to the resolution 
of the analog to digital converter (0-1023 for 10 bits or 0-4095 for 12 
bits). Data type: int.

ich bin ja nur Arduino dumm, ich verstehe trotzdem nicht wenn analogRead 
nur positive Werte liefert warum man int als Rückgabewert nehmen sollte.

Es gibt Dinge die kann man einfach nicht verstehen.

von Manfred (Gast)


Lesenswert?

HBose schrieb:
> Fakt ist aber dass, C-Programme und Ardunio Programme
> an der schlechten Qualität der Include Programme kranken.

Fakt ist, dass Programmierer in allen Hochsprachen auf fertige 
Komponenten zugreifen, nicht nur in C und Arduino.

> Wenn es in meinem Arbeitsleben um Krissensitzungen ging waren
> es immer die Includs die aus Bequemlichkeit verwendet wurden.

Dann sind dort Stümper unterwegs, die irgednwas zusammenkopieren und 
nicht anständig angucken / testen.

> Bei Arduino kann man sie zu 99% vergessen
> und in bestimmten C Umgebungen 95%.

Komisch, dann habe ich immer die 1% getroffen.

> Beispiel:
> Wenn ein Fahrzeug mit einem ABS System mit C Includs in der
> Programmierung, 45m Bremsweg hat. Bei gleichen äußeren und
> mechanischen Bedingungen und einer anderen Programmiersprache,
> plötzlich nur noch 32m Bremsweg hat,
> sind solche Schwächen von C nicht akzeptabel.

Das Problem liegt eindeutig auf Deiner Seite, Du bist überfordert, die 
zur Anwendung passende Entwicklungsumgebung zu wählen. Kein Mensch mit 
einem IQ oberhalb eines Aldi-Toastbrotes wird für zeitkritische 
Umgebungen eine unbekannte Klasse (includes) nutzen.

Ich habe schon Anwendungen in Assembler geschrieben und 
Ausführungszyklen gezählt, weil es an der Leistungsgrenze des 
Controllers war. Genauso schätze ich aber die Bequemlichkeit von C(++), 
wenn es egal ist:

Mein Akkutester holt alle 5 Sekunden einen Messwert, schreibt bei 
Änderungen maximal alle 500ms ins Display, in der Zwischenzeit langweilt 
sich der ATMega - das ist es vollkommen Banane, wie schlecht die 
includes sind.

HBose schrieb:
> Ach du lieber Gott jetzt tauchen auch noch die Trolls
> oder Zweit-Accounts auf.

Ob Du einen Zweit-Account hast, kann ich nicht sehen. Dass Du zur Gruppe 
der Trolle gehörst, ist aber offenkundig erkennbar.

von Einer K. (Gast)


Lesenswert?

Joachim B. schrieb:
> Es gibt Dinge die kann man einfach nicht verstehen.


Es spielt doch für AVR keine Rolle, ob signed, oder unsigned.
Der Wertebereich ist in beiden Fällen, für die originale Funktion, 
ausreichend.

Außerdem existiert die Funktion schon recht lange, stammt aus den 
Anfangszeiten. Ein Interface ändert man nicht ohne Not. Eine Not gibt es 
nicht. Zumindest sehe ich keine.
Auch wenn man darüber streiten kann, was optimal wäre, da gibts ganz 
andere Baustellen, die viel wichtiger sind/wären.

von Stefan F. (Gast)


Lesenswert?

Manfred schrieb:
> Fakt ist, dass Programmierer in allen Hochsprachen auf fertige
> Komponenten zugreifen, nicht nur in C und Arduino.

Außer HBose und c-hater. Wenn die Welt untergeht, und sie unsere einzige 
Rettung sind, werden wir ihnen noch dankbar sein.

von Joachim B. (jar)


Lesenswert?

Arduino Fanboy D. schrieb:
> Außerdem existiert die Funktion schon recht lange, stammt aus den
> Anfangszeiten.

ach ja, kennt man "ham wa immer so gemacht"

Arduino Fanboy D. schrieb:
> Ein Interface ändert man nicht ohne Not. Eine Not gibt es
> nicht.

mich ärgert zu oft das signed Char, keine Ahnung wo mir das immer 
begegnet ist aber ich kannte bis dato keine signed Char.

Aber wie ich schrieb, ich habe keine Ahnung.

Momentan klemmt es in den neueren Arduino IDEs bei mir, Code der mal 
lief wird nach update nun zwar kompiliert, läuft aber nicht mehr.

Ich suche nun in Einzelschritten woran es liegt und bin auf den Temp 
Ordner gestoßen der tatsächlich mir jahrelang verheimlicht wurde wo *.o 
Files noch zu gelinkt werden.

Noch so ein Teil wie die tmp die offensichtlich auch Daten sammelt, 
benenne ich einen Ordner um weil ich was anderes probieren möchte will 
er partout in den umbenannten Ordner suchen und dann passiert "kann 
tool.c.c. nicht finden" und ich wundere mich das ich keine .c.c Datei 
finde.

Irgendwie ist zwischen der Arduino 1.05 1.6.x und 1.8.x für meinen 
Geschmack zu viel geändert worden.

Betrachte das bitte nicht als meckern, wie ich schrieb ich nutze Arduino 
gerne, aber manches macht mehr Probleme als es löst. Ich wollte 
eigentlich eine Erleichterung und nicht abseits der zu lösenden 
"Programmieraufgaben" Nebenschauplätze erforschen.

von Einer K. (Gast)


Lesenswert?

Joachim B. schrieb:
> mich ärgert zu oft das signed Char, keine Ahnung wo mir das immer
> begegnet ist aber ich kannte bis dato keine signed Char.
Über sowas ärgerst du dich?
Ja, dann dann wirds schwierig....

von Joachim B. (jar)


Lesenswert?

Arduino Fanboy D. schrieb:
> Über sowas ärgerst du dich?

ja wenn ich an anderer Stelle unsigned deklariere und es nutzen will 
frage ich mich halt immer noch wie ein char signed werden soll und finde 
keine Antwort.

Ärgern ist heute altersmilde geworden etwas stark ausgedrückt, aber es 
lenkt nur ab. Mittlerweile weiss ich ja zu oft das es selten so ist wie 
ich es wünsche, das muss ich halt hinnehmen lernen, manchmal klappt es 
besser manchmal nicht, wem geht das nicht so?

Vielleicht findet sich ja noch jemand der mir verständlich erklären kann 
warum und wo ein Char negativ werden kann, so das ich es auch mal 
verstehe.

LG

von Einer K. (Gast)


Lesenswert?

Joachim B. schrieb:
> ja wenn ich an anderer Stelle unsigned deklariere und es nutzen will
> frage ich mich halt immer noch wie ein char signed werden soll und finde
> keine Antwort.

Ich kann dir eine Antwort liefern!
Aber sie wird dir nicht in den Kram passen.

Merke:
char ist ein grundlegender Datentype.
Seit Anbeginn der C und auch C++ Tage unverändert vorhanden.

Im C und auch im C++ Standard, ist nicht festgelegt, ob char signed, 
oder unsigned ist.
Es liegt also in der Hand des Compilerbauers.
"Implementation defined" nennt sich das.
Genau so, "Wieviel Bit hat ein char?"!
Auch dieses ist "Implementation defined".
36Bit pro char ist vielleicht selten, aber durchaus im Rahmen des 
Standards.

Wenn man mit char rechnen möchte, muss man also selber definieren, ob 
man mit oder ohne Vorzeichen rechnen möchte.

DAS WAR SCHON IMMER SO.

Da du das beides nicht weißt, muss ich davon ausgehen, dass dich die 
Standardwerke, bzw. Sprachdefinitionen bisher überhaupt nicht 
interessiert haben.

Und mit Arduino hat das nichts zu tun.
Außer, dass dort ein die GCC mitgeliefert wird.
Aber die Collection hat sich in dem Punkt seit XX Jahren nicht geändert.

von Stefan F. (Gast)


Lesenswert?

Joachim B. schrieb:
> mich ärgert zu oft das signed Char, keine Ahnung wo mir das immer
> begegnet ist aber ich kannte bis dato keine signed Char.

Das normale char ist in der Regel signed. Manche Leute schreiben es 
gerne hin, wenn es eine Rolle spielt, damit das offensichtlich ist.

von Stefan F. (Gast)


Lesenswert?

Joachim B. schrieb:
> Momentan klemmt es in den neueren Arduino IDEs bei mir, Code der mal
> lief wird nach update nun zwar kompiliert, läuft aber nicht mehr.

Das ist bei Arduino normal. Besser nicht updaten oder alte Versionen (in 
der Portable Variante samt nachinstallierter Cores und Bibliotheken) für 
alte Projekte aufbewahren.

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das ist bei Arduino normal.
Jetzt fängst du auch wieder mit dem Bashing an...

Hasste mal wieder einen Kumpel gefunden, mit dem du in fremde Hintern 
treten kannst.
Gemeinsamkeit macht Stark!

Stefan ⛄ F. schrieb:
> Portable Variante
Die Empfehlung ist richtig!



> Momentan klemmt es in den neueren Arduino IDEs bei mir, Code der mal
> lief wird nach update nun zwar kompiliert, läuft aber nicht mehr.
Das ist, ohne den Code zu zeigen, einfach nur Geblubber.

Da wird die eigenen Unfähigekit und Nichtwissen, einer IDE/Framework in 
die Schuhe geschoben.
Und das Nichtwissen ist bewiesen, siehe: signed/unsigned char.

Schade Stefan, dass du diese Polarisierungsversuche auch noch aktiv 
unterstützt.

Aber so ist das wohl in diesen postfaktischen Zeiten.

Einer erzählt Stuss!
Der nächste springt auf den dullen Zug auf, und wenn genug päpen wirds 
zum alternativen Fakt, den man dann ungefiltert in die Welt posaunen 
kann.

von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Schade Stefan, dass du diese Polarisierungsversuche auch noch aktiv
> unterstützt.

Es entspricht halt auch meiner Erfahrung mit Arduino. Insbesondere die 
3rd Party Libs unterliegen häufig Veränderungen, die nicht 
abwärtskompatibel sind. Bestes Beispiel ist der ganze Kram rund um 
ESP8266, mein hauptsächlicher Anwendungsfall von Arduino.

Mir ist klar, dass die Arduino Mache nichts dafür können. Und ich bin 
ihnen dankbar, dass sie dafür einfache pragmatische Lösungen (nämlich 
die Portable Version) bereit stellen.

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Es entspricht halt auch meiner Erfahrung mit Arduino.

Stefan ⛄ F. schrieb:
> Mir ist klar, dass die Arduino Mache nichts dafür können.

Immerhin der Versuch zu differenzieren.
Noch halbherzig.
Aber ein Versuch.

Und wenn sich Joachim B. jetzt auch noch entschließen würde zu 
differenzieren, und auch den Problem Code zeigt, dann kanns vielleicht 
noch was werden.....

von Stefan F. (Gast)


Lesenswert?

@Arduino Fanboy: Brauchst du das wirklich? Fühlst du dich angegriffen?

von A. S. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das normale char ist in der Regel signed. Manche Leute schreiben es
> gerne hin, wenn es eine Rolle spielt, damit das offensichtlich ist.

Das ist nicht richtig.

Char hat wirklich 3 unabhängige Formen, für Zeichen char, für skalare 
entweder signed oder unsigned.

Anders als int, das per Default signed ist, und daher das selbe ist wie 
signed int.

Auch wenn mir diese Anmerkung leid tut, Stefan, wo Du hier so tapfer 
gegen krude C-verschwörer ankämpst.

von Joachim B. (jar)


Lesenswert?

Stefan ⛄ F. schrieb:
> Joachim B. schrieb:
>> Momentan klemmt es in den neueren Arduino IDEs bei mir, Code der mal
>> lief wird nach update nun zwar kompiliert, läuft aber nicht mehr.
>
> Das ist bei Arduino normal. Besser nicht updaten

das tröstet aber auch nicht und hilft nicht weiter, ich habe gerade 
wieder nach Neuaufsetzen von Arduino und mit gewüschtem Säubern aller 
meiner Installationen die aktuelle Adafruit-GFX LIB installiert:
1
In file included from D:\atmel\__ARDUINO__\libraries\Adafruit-GFX\Adafruit_MonoOLED.cpp:20:0:
2
3
D:\atmel\__ARDUINO__\libraries\Adafruit-GFX\Adafruit_MonoOLED.h:30:10: fatal error: Adafruit_I2CDevice.h: No such file or directory
4
5
 #include <Adafruit_I2CDevice.h>
6
7
          ^~~~~~~~~~~~~~~~~~~~~~
8
9
compilation terminated.
10
11
exit status 1
12
Fehler beim Kompilieren für das Board Arduino Nano.
die Vorgängerversion ging ohne Probleme, ich nutze ja kein OLED, also 
warum soll nun die Adafruit_MonoOLED LIB eingebunden werden die die 
Adafruit_I2CDevice LIB vermisst?

Arduino Fanboy D. schrieb:
> Stefan ⛄ F. schrieb:
>> Das ist bei Arduino normal.
> Jetzt fängst du auch wieder mit dem Bashing an...
>
> Hasste mal wieder einen Kumpel gefunden,

nicht wirklich, ist wohl und bleibt wohl nicht "mein Kumpel" da er auch 
immer wieder versucht mir in den Hintern zu treten, da möchte ich mich 
gerne distanzieren.

Arduino Fanboy D. schrieb:
> Ich kann dir eine Antwort liefern!
> Aber sie wird dir nicht in den Kram passen.
>
> Merke:
> char ist ein grundlegender Datentype.
> Seit Anbeginn der C und auch C++ Tage unverändert vorhanden.
>
> Im C und auch im C++ Standard, ist nicht festgelegt, ob char signed,
> oder unsigned ist.
> Es liegt also in der Hand des Compilerbauers.
> "Implementation defined" nennt sich das.
> Genau so, "Wieviel Bit hat ein char?"!
> Auch dieses ist "Implementation defined".
> 36Bit pro char ist vielleicht selten, aber durchaus im Rahmen des
> Standards.
>
> Wenn man mit char rechnen möchte, muss man also selber definieren, ob
> man mit oder ohne Vorzeichen rechnen möchte.
>
> DAS WAR SCHON IMMER SO.

1. OK das Char verschiedene Bitbreiten annehmen kann akzeptiere ich ja 
auch je nach CPU ist es sinnvoll nicht immer auf 8 Bit zurückzufallen!
2. Das Char sich auf den Datentyp Character bezieht auch, nur ist das in 
meinem Verständnis nicht vorzeichenbehaftet.

Arduino Fanboy D. schrieb:
> Da du das beides nicht weißt, muss ich davon ausgehen, dass dich die
> Standardwerke, bzw. Sprachdefinitionen bisher überhaupt nicht
> interessiert haben.

ist leider eine Unterstellung die ich widerlegen könnte angefangen bei K 
& R aber mir gehts nicht unbedingt ums Rechthaben, ich suche ja wenn 
möglich den Konsens oder eine Erklärung die ich akzeptieren kann und 
noch besser wenn ich sie verstehe!

Arduino Fanboy D. schrieb:
> Es liegt also in der Hand des Compilerbauers.

und da denke kommen wir hin, das es da Fehler gibt die unendlich 
weitergeführt werden mal so (aus Überlegung) mal so (aus Nachlässigkeit) 
und nicht jeder immer da genau ansetzen mag.

nun kann ich "Fehler beim Kompilieren für das Board Arduino Nano." die 
Adafruit LIB für mich korrigieren, erweitern bedingte Kompilierung für 
mich einbauen oder zurück zur alten LIB wechseln.

Eigentlich alles was nicht mein Job ist, ich wollte in meinem Programm 
vorwärts kommen.

Wie gesagt, ich bin dankbar für jede funktionierende Adafruit LIB, das 
macht heute vieles einfacher, aber auch Profis machen Fehler oder 
prgrammieren gelinde gesagt "fehlerhaft", vielleicht mit "reift beim 
Kunden" und kann in der nächsten Version ja abgestellt werden.
An einer Stelle bin ich beim Stefan ganz ohne Arduino Bashing, nicht 
mehr jedem Update hinterherhecheln, sondern nur wenn es nötig ist habe 
ich gelernt, nur gerade weil ich eh dabei war alles neu aufzusetzen kam 
mir diese GFX als letzte unter die Finger und leider ist das mein Fehler 
das ich im Header nicht immer prüfe welche LIB Version ich nahm, weil 
ich doch die nicht unberechtigte Hoffnung hatte das FolgeLIBS zumindest 
kompatibel funktionieren, wir reden ja hier nicht über 30 Jahre Abstand 
wo win 3.1 oder winXP Programme unter neueren nicht mehr laufen, nicht 
mal im Kompatiblitätsmodus.

Während Arduino 1.8.12 auf dem rasPI mit Buster schon läuft gibts immer 
noch keine Version für win7-64, zumindest tut es die 1.8.9 noch und win7 
ist auch schon abgesagt, könnte also sein das es nie mehr eine Arduino 
Version für win7-64 gibt.

Wie gesagt kein Gemecker nur der Teil der mich gerade beschäftigt in 
meinem Programm vorwärts zu kommen mit Nebenprobleme die ein Anwender 
nicht lösen möchte.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Joachim B. schrieb:
> 2. Das Char sich auf den Datentyp Character bezieht auch, nur ist das in
> meinem Verständnis nicht vorzeichenbehaftet.

In meinem auch nicht, aber nicht nur der gcc sah das schon immer anders. 
Ich  habe das im Kuriositätenkabinett der Programmiersprache abgeheftet. 
Kann ich eh nicht ändern.

von Charakterfester (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Joachim B. schrieb:
>> 2. Das Char sich auf den Datentyp Character bezieht auch, nur ist das in
>> meinem Verständnis nicht vorzeichenbehaftet.


Es gibt offenbar auch negative Charaktere. Insbesondere hier.

?

von Εrnst B. (ernst)


Lesenswert?

sid schrieb:
> long map(long x, long xmin, long xmax, long tomin, long tomax)
> {
>     return (x - xmin) * (tomax - tomin) / (xmax - xmin) + tomin;
> }

> long mapTenBit(long x, long tomin, long
> tomax)
> {
>     return x * (tomax - tomin) / 1023 + tomin;
> }

An dieser Stelle der obligatorische Hinweis: Ein 10-Bit ADC kann 2¹⁰ 
verschiedene Werte ausgeben. Deswegen ist jeder Schritt 1/1024 vom 
Messbereich groß.

Aber vermutlich rede ich an der Stelle gegen eine Wand. Es gibt auch 
Leute, die nie verstehen werden, warum an einer Hand 5 Finger sind aber 
nur 4 Zwischenräume dazwischen...

von Joachim B. (jar)


Angehängte Dateien:

Lesenswert?

Charakterfester schrieb:
> Es gibt offenbar auch negative Charaktere. Insbesondere hier.

unbestritten und wenn mich einer so sehen will auch OK, aber bei Char 
auf dem Compi?

Dabei lernte ich auch gerade von einem Compilerbauerund Informatiker 
immer sorgfältig zu programmieren und wehe ich will mal signed char 
nutzen dann kommt mir der Compiler mit unsigned Fehler oder umgekehrt, 
seit 1986 ist das mein Ärgernis.

Was wäre denn richtig?
Der eine meint so der andere anders, sind das auch nicht nur Meinungen.
Nur weil EINER Character als signed definiert hat muss das nicht richtig 
sein, es ist auch nur eine Definition die sich offensichtlich länger 
hält.

Noch schlimmer wirds gefühlt wer in Arduino ALLE Warnungen einschaltet, 
da wird auf einmal sogar ein Pointer auf ein Char Array angemeckert, 
dabei ist doch klar definiert das ein Array of Char:
1
char meine_zeichenkette[] = { "hat diesen Inhalt" };

das meine_zeichenkette die Adresse aufs erste Zeichen liefert, ich also 
den Pointer benutzen darf -> while(*meine_zeichenkette++) oder so 
ähnlich.
Ist durchaus im Arduino mit 32k Flash auf dem nano auch innerhalb der 
64K Grenze und somit 16bittig OK ist. Gedanken darf ich mir beim ATmega 
2560 und 1284p machen oder auf dem ESP32.

mit allen Warnings mag er nicht mal das:
  switch (TagNummer) {
    case 0:
      return"Sonntag   ";
.......................................

manchmal klemmt es auch in strxx_P Versionen mit PSTR() wann und wo habe 
ich noch nicht vollständig durchblickt.

Auch mag der eine Programmierer lieber
const uint8_t pwmtable_11C[] PROGMEM = ......
der Andere aber
const uint8_t PROGMEM pwmtable_11C[] = ......

wo zur Hölle gehört denn PROGMEM hin?
Neuerdings "soll" man ja das __flash Statement nutzen, bin verwirrt.

So gerade eben wieder die alte GFX LIB installiert, mein Programm läuft 
wieder unter beiden LIBs wahlweise:

mit der Adafruit GFX LIB habe ich am Nano328p folgenden Verbrauch:
Der Sketch verwendet 11502 Bytes (35%) des Programmspeicherplatzes. Das 
Maximum sind 32256 Bytes.
Globale Variablen verwenden 1202 Bytes (58%) des dynamischen Speichers, 
846 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

mit der LCD5110_Basic LIB von Henning Karlson habe ich am Nano328p 
folgenden Verbrauch:
Der Sketch verwendet 8818 Bytes (27%) des Programmspeicherplatzes. Das 
Maximum sind 32256 Bytes.
Globale Variablen verwenden 658 Bytes (32%) des dynamischen Speichers, 
1390 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

wie man sieht deutlich sparsamer, ab ESP32 ist es (noch) egal flash und 
RAM im Überfluß, für Kleineres wo eigentlich ein nano reicht wirds eng.

Aber beim Rechnen mit Adressen wird die IDE leicht zickig mit allen 
Warnungen aktiv, das muss man casten bis der Arzt kommt, aber es geht 
hier immer noch um die Brot und Buter Arduinos, das vesagt natürlich 
schon in Grenzen wer auf dem ESP32 die 2te CPU nutzen will und 
frecherweise auch noch Daten mit dieser austauschen will.

Aber wie gesagt dann nur dann muss man eh tiefer einsteigen und wer sich 
in die GPU Programmierung mit 128 Bitbreite begibt dem hilft auch nicht 
mehr uint64_t oder int64_t, gibts denn schon uint128_t oder gar 
uint256_t?

uint8_t var1=0;
uint16_t var2=0;
uint32_t var3=0;
uint64_t var4=0;
uint128_t var5=0;
uint256_t var6=0;

also ab 64_t meckert der Compiler und die IDE wechselt die Farbe von 
blau zu schwarz also unbekannt.

exit status 1
'uint128_t' does not name a type; did you mean 'uint32_t'?

Was wollte ich eigentlich?

Mich an einer kompakten IDE erfreuen die mir viel erspart dank 
reichhaltiger LIBs mal besser mal schlechter programmiert und nicht 
meckern.

Gerne da wo es nötig ist den nano auf ein Steckbrett stecken Sensoren 
oder Aktoren ran und nutzen, wie hier, siehe Bild.
Bis jetzt klappte ja Nokia sowie I2C Scan mit Erkennung, RTC DS3231, RTC 
DS1307, I2C PCF8574(a), OLED, PT5822, DHT22/11, DS18B20, 433 MHz funken 
mit der RCswitch LIB, sowie I2C EEPROM mit Adresserkennung (die 3 
Adressbits) und Leertest und Größentest, mit dem Nokia 5110 Display als 
Rückmeldung am Nano328p und am ESP32(WEMOS LOLIN32)

Während die meisten Routinen bei EEPROM immer 5ms bis 10ms Wartezeit 
einlegen nach Byte schreiben, habe ich die Routinen optimiert und frage 
das EEPROM ab ob es wieder ansprechbar ist, spart viel Zeit.
Ich meckere nicht nur ich helfe mir selber wenn ich was finde denn im 
Netz gesucht habe ich reichlich und finde immer wieder dieses doofe 
delay(5) bei EEPROM write, dabei ist die Lösung wirklich nicht schwer:
1
void my_i2c_eeprom_wait_ready(void) {
2
  Wire.setClock(I2C_CLOCK_LOW);
3
  // Wait until EEPROM gives ACK again.
4
  // this is a bit faster than the hardcoded 5 milli
5
  do {
6
    Wire.beginTransmission(MY_I2C_EEPROM_ADDRESS); Wire.requestFrom(MY_I2C_EEPROM_ADDRESS, 1);
7
    Wire.read();
8
  }while(Wire.endTransmission());
9
  Wire.setClock(I2C_CLOCK_HIGH);
10
} // void my_i2c_eeprom_wait_ready(void) {

hier muss ich noch statt das #define MY_I2C_EEPROM_ADDRESS ändern zur 
echten gefunden EEP_ADDRESS Variablen denn damit hatte ich mich selber 
mal ausgetrickst, die A0-A2 müssen ja nicht immer offen oder geschlossen 
sein!

I2C_CLOCK_LOW/HIGH gibts ja von früher nur 100kHz dann kamen schnellere 
Chips mit 400kHz und nun gehts bei einigen noch schneller, das EEPROM 
gehörte bis jetzt zu den Lahmen deswegen setze ich dort den Takt herab.
Ein PCF8574 spielt locker mit 400kHz.

In der Adafruit GFX LIB fiel mir auf das das '~' <ALT 126> hier im 
Editor und auf allen meinen Rechnern bis zum Raspi einwandfrei mittig 
sitzt in der Arduino IDE und im Notepad++, in der DefaultFonts von der 
Henning Karlson LIB LCD5110_Basic auch, aber in der GFX LIB von Adafruit 
an den oberem Pixelrand klebt, das habe ich nach mühsamer Suche auch für 
mich "korrigiert", nun kann man streiten wo das '~' sitzen soll oben 
unten in der Mitte? (deswegen korrigiert in Gänsefüsschen).

LG und peace an alle!

von Alexander K. (Gast)


Lesenswert?

Wenn ich euch so zanken lesen, lobe ich mir mein B4R.

Keine geschweiften Klammern und keine Invasion von Datentypen. ;)

Gruß

  Pucki

von Joachim B. (jar)


Lesenswert?

Εrnst B. schrieb:
> sid schrieb:
>>  1023
>
> An dieser Stelle der obligatorische Hinweis: Ein 10-Bit ADC kann 2¹⁰
> verschiedene Werte ausgeben. Deswegen ist jeder Schritt 1/1024 vom
> Messbereich groß.
>
> Aber vermutlich rede ich an der Stelle gegen eine Wand. Es gibt auch
> Leute, die nie verstehen werden, warum an einer Hand 5 Finger sind aber
> nur 4 Zwischenräume dazwischen...

auch wenn ich dich verstehe und 0-1023 = 1024 Werte umfasst ist der 
höchste Messwert den mir mein ADC bei Vref liefert 1023 und genau den 
nehme ich zur Berechnung, jeder Step kleiner ist Vref/1023 weil Vref = 
Vref = 1023 als Maximum dann wäre allenfalls ADC = 0 eben Vref/1024 aber 
das ist mir dann auch sowas von egal, man misst halt nicht um 0 war 
schon immer so, immer am Skalenendwert auch als es noch SpiegelMeßgeräte 
analog gab.

Pucki geh spielen wenn Ausgewachsene debattieren, nach Streiten ist mir 
nicht mal!

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Εrnst B. schrieb:
> Aber vermutlich rede ich an der Stelle gegen eine Wand

Das nicht, aber hier in diesem Thread redest du in den leeren Raum weil 
das gerade keinen interessiert. Wir haben haben gerade andere Sorgen.

von Meister Röhrich (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wir haben haben gerade andere Sorgen.

Nu lassen Sie uns doch mal in Ruhe, Frau Hansen! Wir stehen hier vor 
einer ganz anderen Problematik!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.