Forum: Mikrocontroller und Digitale Elektronik Arduino Mega


von Sebastian M. (basti_481803)


Angehängte Dateien:

Lesenswert?

Hallo ich möchte im 2Sekunden Takt mit meinem Arduino MEGA 5V ausgeben. 
Die Leitung schließe ich bei Digital 25 an und habe folgenden Code

void setup() {

 pinMode(25, OUTPUT);

void loop(){

   digitalWrite(25, HIGH);
   delay(2000);
   digitalWrite(25, LOW);
   delay(2000);

}

Mit dem Multimeter kann ich die 5V allerdings nicht messen. Bzw. es 
werden keine 5V ausgegeben

von Helge S. (topflappen)


Lesenswert?

da fehlt schonmal die geschwuffene Klammer der setup Routine

von Sebastian (Gast)


Lesenswert?

Sebastian M. schrieb:
> Mit dem Multimeter kann ich die 5V allerdings nicht messen. Bzw. es
> werden keine 5V ausgegeben

Das sollte es aber. Falscher Steckverbinder? Schwarzes Kabel vom 
Multimeter nicht an GND? Versuch es mal mit Pin D13, dort ist auch die 
on-board Led angeschlossen.

LG, Sebastian

von Sebastian M. (basti_481803)


Lesenswert?

Ok Pin 13

Macht nichts dass das ein PWM Pin ist oder?

Stimmt geschweifte Klammer habe ich

von EAF (Gast)


Lesenswert?

Sebastian M. schrieb:

> void setup() {
>
>  pinMode(25, OUTPUT);
>
> void loop(){

Wenn das Programm derart fehlerhaft ist, dann bricht die Kompilierung ab 
und es wird kein Programm hochgeladen.

Das ist das zu erwartende Verhalten.

Tipp:
Die Meldungen aufmerksam lesen.

von J. S. (jojos)


Lesenswert?

25 ist nicht D25

von Sebastian M. (basti_481803)


Lesenswert?

Habe es nur falsch hierrein kopiert. Software technisch kommen keine 
Meldungen.

Den Pin 25 den ich als OUTPUT deklariere ist doch D25 oder was dann?

Ist digital ground mit analog ground intern verbunden?

von J. S. (jojos)


Lesenswert?

Doch, hast recht, müsste passen. Die PIN Nummerierung ist manchmal 
verwirrend, bei den ESP jedenfalls.

von Sebastian M. (basti_481803)


Lesenswert?

Eigentlich sollte dies so banal sein aber mein Arduino gibt die 5V 
niemals aus.

Hier mein ganzer Code.


#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


double voltagesensor = 0;
double current = 0;
double zero = 2.5;
double deltaVpA = 0.066;


void setup() {



   pinMode(25, OUTPUT);

  lcd.begin(16, 2); //Initialise 16*2 LCD

  lcd.print("Voltage Monitor");

  lcd.setCursor(0, 1);

  lcd.print("    for EV    ");

  delay(2000);

  lcd.clear();

}


void loop() {



  float Cell_1 = analogRead(A8) * (5.0 / 1023.0); //Measure 1st cell 
voltage

  lcd.print("C1:"); lcd.print(Cell_1);


  float Cell_2 = analogRead(A9) * (5.0 / 1023.0); //Measure 2nd cell 
voltage

  lcd.print(" C2:"); lcd.print(Cell_2);


  lcd.setCursor(0, 1);

  float Cell_3 = analogRead(A10) * (5.0 / 1023.0); //Measure 3rd cell 
voltage

  lcd.print("C3:"); lcd.print(Cell_3);



  float Cell_4 = analogRead(A11) * (5.0 / 1023.0); //Measure 4th cell 
voltage

  lcd.print(" C4:"); lcd.print(Cell_4);


  delay(4000);

  lcd.clear();


  lcd.setCursor(0, 0);



  delay(2000);

  lcd.clear();


 digitalWrite(25, HIGH);
  delay(2000);
  digitalWrite(25, LOW);
  delay(2000);

}

: Bearbeitet durch User
von forum cop (Gast)


Angehängte Dateien:

Lesenswert?

Sebastian M. schrieb:
> Hier mein ganzer Code.

Bitte Regeln zum Posten von Code beachten!

von Cyblord -. (cyblord)


Lesenswert?

forum cop schrieb:
> Sebastian M. schrieb:
>> Hier mein ganzer Code.
>
> Bitte Regeln zum Posten von Code beachten!

Arduino-Nutzer gelten als Personen mit besonderen Bedürfnissen und sind 
daher von solchen Regeln befreit. Inklusion ist das Stichwort.

von Peter (Gast)


Lesenswert?

Bist Du dir denn sicher, dass Dein Programm beim Portgewackel überhaupt 
ankommt und nicht vorher irgendwo hängen bleibt? Nutz doch die 
Serielleausgabe für Debugmeldungen, midnest an der Steller wo nicht das 
erwartete passiert.

von J. S. (jojos)


Lesenswert?

Und auch mega2560 als Board eingestellt?

von Veit D. (devil-elec)



Lesenswert?

Hallo,

dein Sketch funktioniert erstmal.
1
const byte taktPin {25};
2
const unsigned int pause {2000};
3
4
void setup()
5
{
6
  pinMode(taktPin, OUTPUT);
7
}
8
9
void loop()
10
{
11
  digitalWrite(taktPin, HIGH);
12
  delay(pause);
13
  digitalWrite(taktPin, LOW);
14
  delay(pause);
15
}

Wenn du an GND und D25 misst, könnte es sein das dein Multimeter zu 
langsam misst. Vergrößer einmal die Pause auf 5s. Im Anhang noch ein 
schöneres Pinout.

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Cyblord -. schrieb:

>> Bitte Regeln zum Posten von Code beachten!
>
> Arduino-Nutzer gelten als Personen mit besonderen Bedürfnissen und sind
> daher von solchen Regeln befreit. Inklusion ist das Stichwort.

:-) Du solltest Politiker werden.

von Percy N. (vox_bovi)


Lesenswert?

Thomas H. schrieb:
> Cyblord -. schrieb:
>>> Bitte Regeln zum Posten von Code beachten!
>>
>> Arduino-Nutzer gelten als Personen mit besonderen Bedürfnissen und sind
>> daher von solchen Regeln befreit. Inklusion ist das Stichwort.
>
> :-) Du solltest Politiker werden.

Gibt's dafür schon Armbinden?

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Percy N. schrieb:
> Gibt's dafür schon Armbinden?

Fast

von Percy N. (vox_bovi)


Lesenswert?

Stefan F. schrieb:
> Percy N. schrieb:
>> Gibt's dafür schon Armbinden?
>
> Fast

Die Ähnlichkeit ist unverkennbar.

von Moko (Gast)


Lesenswert?

Du willst im 2 Sekundentakt die Ausgabe am Port 25 wechseln, hast aber 
ein delay(4000)  und noch ein delay(2000) im loop, in denen Dein 
Prozessor "schläft".
Finde den Fehler ;)

von MCUA (Gast)


Lesenswert?

> delay(2000);
CPU-Blockierer.

von Sebastian M. (basti_481803)


Lesenswert?

> Wenn du an GND und D25 misst, könnte es sein das dein Multimeter zu
> langsam misst. Vergrößer einmal die Pause auf 5s. Im Anhang noch ein
> schöneres Pinout.

Danke perfekt. Das war der Fehler dass das Intervall zu gering war

von Stefan F. (Gast)


Lesenswert?

MCUA schrieb:
>> delay(2000);
> CPU-Blockierer.

Arduino Nichtversteher.

Die delay() Funktion blockiert die CPU nicht. Kannst du ja mal mit einem 
ESP8266 ausprobieren. Oder einfach mal in den Quelltext gucken.

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Stefan F. schrieb:
> MCUA schrieb:
>>> delay(2000);
>> CPU-Blockierer.
>
> Arduino Nichtversteher.
>
> Die delay() Funktion blockiert die CPU nicht. Kannst du ja mal mit einem
> ESP8266 ausprobieren. Oder einfach mal in den Quelltext gucken.

Nun bin ich aber auch als Arduino- und _delay vermeider neugierig. Wie 
arbeite ich den andere Codesequenzen ab, währen ein _delayxx(y) fleißig 
zählt...?

von Cyblord -. (cyblord)


Lesenswert?

Thomas H. schrieb:
> Nun bin ich aber auch als Arduino- und _delay vermeider neugierig. Wie
> arbeite ich den andere Codesequenzen ab, währen ein _delayxx(y) fleißig
> zählt...?

Interrupts.

von Falk B. (falk)


Lesenswert?

Thomas H. schrieb:
>> Die delay() Funktion blockiert die CPU nicht. Kannst du ja mal mit einem
>> ESP8266 ausprobieren. Oder einfach mal in den Quelltext gucken.
>
> Nun bin ich aber auch als Arduino- und _delay vermeider neugierig. Wie
> arbeite ich den andere Codesequenzen ab, währen ein _delayxx(y) fleißig
> zählt...?

Man kann auch andere Funktion abarbeiten lassen, während _delay() läuft, 
dazu gibt es die yield() Funktion. Das hab ich aber im Detail auch noch 
nicht getan.

von erklehr behr (Gast)


Lesenswert?

Falk B. schrieb:
> dazu gibt es die yield() Funktion.

Und man kann Interrupt-Routinen ihren Dienst tun lassen.

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

> Man kann auch andere Funktion abarbeiten lassen, während _delay() läuft,
> dazu gibt es die yield() Funktion. Das hab ich aber im Detail auch noch
> nicht getan.

Ok, verstehe. Das geht in Richtung RTOS.  Die Aussage das die 
_delayxx(y) aus der avr lib,  aus der sie entliehen sind nicht die MCU 
blockiert ist trotzdem nicht richtig.

von Εrnst B. (ernst)


Lesenswert?

Falk B. schrieb:
> Das hab ich aber im Detail auch noch
> nicht getan.

einfach überschreiben, das vordefinierte "yield" ist ein weak symbol.

z.B. zum Stromsparen am AVR:
1
void yield() {
2
    set_sleep_mode(SLEEP_MODE_IDLE);
3
    sleep_mode();
4
}
(Wird durch den systick/millis()-Timer wieder aus dem idle geweckt, d.H. 
verschläft nicht)

von MCUA (Gast)


Lesenswert?

>>> delay(2000);
>> CPU-Blockierer.
> Arduino Nichtversteher.
Von wegen. Kindergarten.
Kein Mensch in der Industrie program. solch Verzögerungen über so'n 
Delay!
Diese Funktion hängt ja schon per Definition an einer Stelle fest.
Was soll das werden, wenn es 20..30 OUTs sind, die unterschiedlich 
verzögert werden müssen?
Willst du dann beim 2. OUT abwarten, bis die Zeit vom 1. OUT abgelaufen 
ist?
..Und beim 3. OUT abwarten, bis die vom 1. u. 2. OUT abgelaufen sind?
..Und beim 4. OUT abwarten, bis die vom 1. u. 2. u. 3. OUT abgelaufen 
sind?
Das ist Kindergarten.

von Helge S. (topflappen)


Lesenswert?

Es war der größte Fehler, das "Hallo Welt" Blink Program der Newbie 
Gemeinde mit der delay() Funktion vozustellen. Viel zu spät kam das 
BlinkWithoutDelay in die Arduino Beispielbibliothek. Ausserdem ist 
dieses Beispiel überfrachtet mit Comments und deswegen unleserlich. 
Naja, man wollte halt auch die <10 Jahre Babies bedienen ...

von EAF (Gast)


Lesenswert?

Thomas H. schrieb:
> Nun bin ich aber auch als Arduino- und _delay vermeider neugierig. Wie
> arbeite ich den andere Codesequenzen ab, währen ein _delayxx(y) fleißig
> zählt...?

Du meinst delay(x) !?!?

Auch Interrupts möglich, aber nicht nur.

Avr Arduino kennen yield() um die Delay Zeit zu nutzen.
Arduino ähnliche mit FreeRTOS, spenden die delay Zeit an andere Tasks.

von MCUA (Gast)


Lesenswert?

> Avr Arduino kennen yield() um die Delay Zeit zu nutzen.
Glaub es.
Jemand der in nem Programm 'delay(x)' oder Ähnliches benutzt, sitzt im 
Kindergarten.
(ich nenn jetzt keine Namen)

von EAF (Gast)


Lesenswert?

Ach herrje...
Wieder das übliche Arduino Bashing.

Ist das das ein gutes Gefühl, wenn man Anfänger in die Pfanne haut?
Was spürt man da? Stolz? Glück?

Und natürlich glaube ich dir das!
Ich glaube alles!
(bin aber nicht sonderlich gut, in glauben)

von MCUA (Gast)


Lesenswert?

Ne, das hat nicht unbedingt nur was mit Arduino zu tun.
Das ist Prinzip.
Hinweis: Scheduler!

von Miles Bennet D. (Firma: Cyberdyne Systems) (milesbennetdyson)


Lesenswert?

MCUA schrieb:
> Hinweis: Scheduler!

Oder wissen, wie das mit dem Yield funktioniert.

Die Macher hinter Arduino sind meist gar nicht so blöd. Im Gegensatz zu 
den Makern davor.

von Stefan F. (Gast)


Lesenswert?

Thomas H. schrieb:
> Ok, verstehe. Das geht in Richtung RTOS.  Die Aussage das die
> _delayxx(y) aus der avr lib,  aus der sie entliehen sind nicht die MCU
> blockiert ist trotzdem nicht richtig.

Das stimmt nicht. Dies ist die "originale" delay() implementierung für 
AVR:
1
void delay(unsigned long ms)
2
{
3
  uint32_t start = micros();
4
5
  while (ms > 0) {
6
    yield();
7
    while ( ms > 0 && (micros() - start) >= 1000) {
8
      ms--;
9
      start += 1000;
10
    }
11
  }
12
}

Nicht zu übersehen, dass hier yield() aufgerufen wird. Dies wiederum ist 
eine leere weak Funktion, die du durch eine eigene ersetzen kannst. Und 
da kannst du dann machen was du willst, während dealyed() wird. Zum 
Beispiel könnte man da prima einen Endlichen Automaten unterbringen, der 
ganz viele spannende Sachen macht.

Mit RTOS hat das relativ wenig zu tun. Es ist eine simple und gängige 
Methode, kooperatives Multitasking zu implementieren.

von Stefan F. (Gast)


Lesenswert?

MCUA schrieb:
> Das ist Kindergarten.

Du hast die Funktion auch nicht verstanden. Delay() ist sogar reentrant.

Das Multitasking von Windows 3.11 funktionierte nach dem selben Prinzip. 
Da gab es einige blockierende API Funktionen, die in ihrer Warteschleife 
yield() aufriefen, damit man während dessen noch etwas Sinnvolles tun 
konnte.

von MCUA (Gast)


Lesenswert?

> Du hast die Funktion auch nicht verstanden. Delay() ist sogar reentrant.
> Nicht zu übersehen, dass hier yield() aufgerufen wird.
Man braucht nicht eine 'yield()'-Fkt aufrufbar (..fähig) zu machen, um 
eine völlig unsinnige 'delay()'-Fkt zu übertünchen.
(Und schreibe das mal auf für die genannten 20..30 OUTs)
Kein Mensch implemen. so einen Scheduler.
Hier sitzen einige im Kindergarten, die sich selbst ans Bein pinkeln.

> Das Multitasking von Windows 3.11 funktionierte nach dem selben Prinzip.
Völliger Quatsch.
Von ASM hast du scheinbar Null Ahnung.

von Stefan F. (Gast)


Lesenswert?

MCUA schrieb:
> Und schreibe das mal auf für die genannten 20..30 OUTs

Das mache ich ganz bestimmt nicht, weil Delay in solchen Anwendungen nur 
alles unnötig kompliziert macht.

von Manfred (Gast)


Lesenswert?

MCUA schrieb:
> Jemand der in nem Programm 'delay(x)' oder Ähnliches benutzt, sitzt im
> Kindergarten.

Kindergarten ist hier, dass Sebastian im Eröffnungsposting ein Programm 
gezeigt hat, was er offenbar nicht in den Mega eingespielt hat.

Das entspricht, bis auf Portnummer, Zeit und der fehlenden Klammer dem 
Blink.ino, was die A*-IDE mitbringt. Und es hätte funktioniert!

Auch in seinem Gesamtablauf spricht nichts gegen die Verwendung von 
Delay:
Er schreibt 4 Messwerte ins Display, macht die LED an und wieder aus und 
holt neue Werte ins Display, da stört die 'Blockierung' nicht.

Die delay 4000 / 2000 sind natürlich Unfug, aber die Zeiten und wann 
Display clear Sinn macht, kann er simpel umbauen.

von DerEinzigeBernd (Gast)


Lesenswert?

MCUA schrieb:
>> Das Multitasking von Windows 3.11 funktionierte nach dem selben Prinzip.
> Völliger Quatsch.
> Von ASM hast du scheinbar Null Ahnung.

Was hat Windows 3.11 mit "ASM" zu tun?
Völliger Quatsch. Von Windows hast Du scheinbar Null Ahnung. Auch von 
Windows 3.11.

von MCUA (Gast)


Lesenswert?

> weil Delay in solchen Anwendungen nur alles unnötig kompliziert macht.
Nein, weil 'Delay' da völliger UNFUG ist (und so auch garnicht zu machen 
ist).
Denn die nach 'Delay 2000' kommende Funktion wird doch erst 2000 ms 
später ausgeführt; also blockierst (!) du doch damit für (den riesigen 
Zeitbereich von) 2000 ms (!) weitere Ausführungen (auf dieser 
Programm-Ebene).
Was soll denn da sinnvolles rauskomen?


-----------------------------------------
-----------------------------------------
((
> Was hat Windows 3.11 mit "ASM" zu tun?
Was hat das mit der Sache hier zu tun?
Gar nichts! Schwachsinn!
Redest zusammenhang-Losen Blödsinn und hast kein blassen Schimmer, worum 
es hier überhaupt geht (von ASM ganz zu schweigen).
))

von Manfred (Gast)


Lesenswert?

MCUA schrieb:
> Denn die nach 'Delay 2000' kommende Funktion wird doch erst 2000 ms
> später ausgeführt; also blockierst (!) du doch damit für (den riesigen
> Zeitbereich von) 2000 ms (!) weitere Ausführungen (auf dieser
> Programm-Ebene).

Bist Du nun verbohrt, ein Ignorant oder nur mental überfordert?

Wir wissen, dass delay eine blockierende Funktion ist, auch Stefanus. 
Das hindert aber niemanden daran, es trotzdem zu verwenden, wenn eine 
kurze Blockade zulässig ist.

Auch, wenn ich mich wiederhole: Für den Ablauf des TO stellt delay kein 
Problem dar! Wenn er später auf die Idee kommt, weitere Funktionen wie 
z.B. einen Schalter hinzuzufügen, wird er natürlich auf's Maul fallen 
und auf Timer (blink ohne delay) umstellen müssen.

Aber immer schön langsam, C++ ist keine angeborene Fähigkeit, das 
dauert.

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Stefan F. schrieb:

> Nicht zu übersehen, dass hier yield() aufgerufen wird. Dies wiederum ist
> eine leere weak Funktion, die du durch eine eigene ersetzen kannst. Und
> da kannst du dann machen was du willst, während dealyed() wird. Zum
> Beispiel könnte man da prima einen Endlichen Automaten unterbringen, der
> ganz viele spannende Sachen macht.
>
> Mit RTOS hat das relativ wenig zu tun. Es ist eine simple und gängige
> Methode, kooperatives Multitasking zu implementieren.

Ok, verstehe. Mit Arduino hab ich eben nichts zu tun. Aber nur um 
Missverständnissen vorzubeugen. Ich rede von der _delayms() und Du von 
delay(), ich gehe davon aus, das wir hier von zwei verschiedenen 
Implementirungen reden. 1x AVR lib und das andere eine Arduino 
Implementierung. Richtig?

von Veit D. (devil-elec)


Lesenswert?

Hallo,

wenn ihr euch durch falsche Schreibweisen selbst durcheinander bringt 
müsst ihr euch über kontroverse Diskussionen nicht wundern.

Bei Arduino lautet diese delay(x).

_delay(x) und _delayms() gibts nicht. Weder bei Arduino noch in der avr 
Lib.

Wenn dann <util/delay.h> _delay_ms(x).

Kein Wunder das hier alle durcheinander reden. Nur mit Arduino delay() 
gibts den Ausweg mittels yield(). Und der Thread dreht sich ja eindeutig 
um Arduino.

von MCUA (Gast)


Lesenswert?

> Bist Du nun verbohrt, ein Ignorant oder nur mental überfordert?
Nein. Von mir aus kannst du dich 24h am Tag selbst blockieren.

> ... wird er natürlich auf's Maul fallen
Also gibst du damit diese völligen Blöd(Schwach)sinn doch selbst zu.
Nichts anderes ist das.
Man programmiert doch nicht Etwas, bei dem man schon bei kleiner 
Erweiterung selbst hinfällt!

> wenn eine kurze Blockade zulässig ist.
Solch Blödsinn kann nur ein Hochsprachen-Fritze schreiben.
Denn 2000 ms sind bei CPU (oder ProgrammEbene) eine halbe Ewigkeit.
'kurz' sind höchstens ein paar ASM (oder NOP) Befehle (die du scheinbar 
nicht kennst).

von Stefan F. (Gast)


Lesenswert?

Thomas H. schrieb:
> Ich rede von der _delayms()

Dann bist du im falschen Zug. Auf dem richtigen Zug steht dick und fett 
Arduino.

MCUA schrieb:
> Man programmiert doch nicht Etwas, bei dem man schon bei kleiner
> Erweiterung selbst hinfällt!

Doch, Anfänger tun das. Man kann nicht das Programmieren lernen, indem 
man mit der Komplexität beginnt, die erfahrene Programmierer drauf 
haben. Noch ist kein Meister vom Himmel gefallen.

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Stefan F. schrieb:

> Nicht zu übersehen, dass hier yield() aufgerufen wird. Dies wiederum ist
> eine leere weak Funktion, die du durch eine eigene ersetzen kannst. Und
> da kannst du dann machen was du willst, während dealyed() wird. Zum
> Beispiel könnte man da prima einen Endlichen Automaten unterbringen, der
> ganz viele spannende Sachen macht.

Klingt nach einer "wackligen" Sache. Was ist wenn man auf die Idee kommt 
in die yield() delay's zu packen oder die yield() für ihren Task länger 
braucht das das parent delay()?

So oberflächlich betrachtet kann man da nichts wirkliches Zeitkritisches 
mit machen.

von Stefan F. (Gast)


Lesenswert?

Thomas H. schrieb:
> Was ist wenn man auf die Idee kommt in die yield() delay's zu packen

Es funktioniert. Wie ich bereits schrieb, ist die delay() Funktion 
reentrant.

> oder die yield() für ihren Task länger braucht das das parent delay()?

Dann dauert das Delay halt länger. Dieser Haken ist beim kooperativen 
Multitasking nicht neu.

Selbst im aktuellen Windows und Linux musst du ebenfalls jederzeit damit 
rechnen, dass ein delay() oder sleep() länger dauert als vorgegeben.

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Stefan F. schrieb:

> Das Multitasking von Windows 3.11 funktionierte nach dem selben Prinzip.
> Da gab es einige blockierende API Funktionen, die in ihrer Warteschleife
> yield() aufriefen, damit man während dessen noch etwas Sinnvolles tun
> konnte.

Ja z.b. der Eieruhr zuschauen :-)

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Stefan F. schrieb:
> Thomas H. schrieb:
>> Was ist wenn man auf die Idee kommt in die yield() delay's zu packen
>
> Es funktioniert. Wie ich bereits schrieb, ist die delay() Funktion
> reentrant.
>
>> oder die yield() für ihren Task länger braucht das das parent delay()?
>
> Dann dauert das Delay halt länger. Dieser Haken ist beim kooperativen
> Multitasking nicht neu.
>

Wie ich schrieb, nichts für zeitkritische Sachen. Da ändert dann auch 
die hübsche Bezeichnung nichts dran.  Aber vermutlich macht man so was 
mit Arduino nicht.

von Stefan F. (Gast)


Lesenswert?

Thomas H. schrieb:
> Ja z.b. der Eieruhr zuschauen :-)

Jo, ich kann mich auch noch gut dran erinnern.

Es gab aber schon ein paar Sachen die weiter liefen. Zum Beispiel der 
Drucker und Winamp.

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Stefan F. schrieb:
> Thomas H. schrieb:
>> Ich rede von der _delayms()
>
> Dann bist du im falschen Zug. Auf dem richtigen Zug steht dick und fett
> Arduino.

Nun wie vermutlich alle hier, bis auf die Fragesteller leide ich grade 
an Langeweile und da steigt man auch mal in einen Zug ein in den man 
sich sonst nicht setzten würde um Zeit totzuschlagen.

von Thomas H. (Firma: CIA) (apostel13)


Lesenswert?

Stefan F. schrieb:
> Thomas H. schrieb:
>> Ja z.b. der Eieruhr zuschauen :-)
>
> Jo, ich kann mich auch noch gut dran erinnern.
>
> Es gab aber schon ein paar Sachen die weiter liefen. Zum Beispiel der
> Drucker und Winamp.

Stimmt...

von MCUA (Gast)


Lesenswert?

> Doch, Anfänger tun das.
Wieviel Jahre soll man Anfänger sein?
So'n Blockierungs-Quatsch merkt man in der 1. Minute.

> Dann dauert das Delay halt länger. Dieser Haken ist beim kooperativen
> Multitasking nicht neu.
Einige kapieren es nie.
Kooperatives Multitasking hat nichts (!) mit Verwendung von 'Delay' zu 
tun.

von Stefan F. (Gast)


Lesenswert?

MCUA schrieb:
> Kooperatives Multitasking hat nichts (!) mit Verwendung von 'Delay' zu
> tun.

Es hat mit yield() zu tun, welches innerhalb von delay() aufgerufen 
wird.
https://www.google.com/search?q=kooperatives+multitasking+yield()

von Percy N. (vox_bovi)


Lesenswert?

MCUA schrieb:
> Kindergarten

MCUA schrieb:
> Kein Mensch

MCUA schrieb:
> Das ist Kindergarten.

MCUA schrieb:
> sitzt im Kindergarten

MCUA schrieb:
> Kein Mensch

MCUA schrieb:
> Hier sitzen einige im Kindergarten

MCUA schrieb:
> Völliger Quatsch

MCUA schrieb:
> völliger UNFUG

MCUA schrieb:
> völligen Blöd(Schwach)sinn

MCUA schrieb:
> Solch Blödsinn kann nur ein Hochsprachen-Fritze schreiben.

Haben wir gerade Dunning-Kruger-Gedächtniswoche?

von MCUA (Gast)


Lesenswert?

> Es hat mit yield() zu tun, welches innerhalb von delay() aufgerufen
> wird.
Nein.

> Haben wir gerade Dunning-Kruger-Gedächtniswoche?
Ja. Damit du es (irgentwann) kapierst.

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.