Editor: Referenz kann nicht angeklickt werden im Kontextmenü; keine Suchfunktion

hallo,

2 Fragen 1) im Editor kann seltsamerweise kein "in Referenz suchen" angeklickt werden (im Kontextmenü); lade ich die Referenz getrennt, gibt es da keine Suchfunktion :( dachte, ich hätte sie früher gehabt... warum ist die weg aus dem Kontextmenü ?

2) ich finde aktuell nichts zu INPUT_PULLUP pinMode(encoderB, INPUT_PULLUP);

geht das evtl auch über pinMode(encoderB, INPUT); plus digitalWrite(HIGH) ?

HaWe: 1) im Editor kann seltsamerweise kein "in Referenz suchen" angeklickt werden (im Kontextmenü); lade ich die Referenz getrennt, gibt es da keine Suchfunktion :( dachte, ich hätte sie früher gehabt... warum ist die weg aus dem Kontextmenü ?

Bei mir funktioniert das "in Referenz suchen" genau dann, wenn die Schreibmarke auf einem Begriff (in korrekter Groß-/Kleinschreibung) steht, der in der Referenz vorhanden ist.

Auch bei INPUT_PULLUP.

Also ggf: - mit der linken Maustaste den Begriff anklicken zum Positionieren der Schreibmarke - mit der rechten Maustaste das Kontextmenü öffnen und "In Referenz suchen".

danke, aber das ist echt ein Ding - den Cursor im Wort positionieren hab ich vorhin ntl auch gemacht, aber nie ging's . Jetzt plötzlich doch :fearful:

ich glaub's nicht - aber gut, ok.

INPUT_PULLUP hab ich gefunden. Was es macht war schon klar dank deinem post in nem anderen Thread. Was ich aber nicht verstehe und auch in der Referenz nicht finde...: INPUT hat den Wert 0, OUTPUT =1 was hat aber INPUT_PULLUP für einen Wert? Und was unterscheidet das von

pinMode(encoderB, INPUT);
//plus 
digitalWrite(encoderB, HIGH);

(bin jetzt nicht sicher, ob die Syntax stimmt)

Verwende Atmel Studio + Visual Micro. Das zeigt dir die Definition aller Makros an :) INPUT_PULLUP ist 2

Beim zweiten bin ich mir nicht 100%ig sicher, aber wenn man sich im Atemga328 Datenblatt Seite 77 anschaut, sieht man dass Input, High Tristate ist. Genauso wie Input, Low. Der Unterschied auf Register-Ebene ist, dass bei Input, Low der Zustand des Pullup Disable Bits in MCUCR (MCU Control Register) keine Rolle spielt, während es bei Input, High gesetzt sein muss (für Tristate). Denn einen Pin auf Eingang und High schalten und gleichzeitig das PUD Bit löschen ist genau was INPUT_PULLUP machen wird.

HaWe: was hat aber INPUT_PULLUP für einen Wert?

Das kannst Du entweder im Arduino-Quellcode nachschauen. Oder Du läßt Dir den Wert mal mit Serial.println(INPUT_PULLUP) anzeigen.

HaWe: Und was unterscheidet das von

pinMode(encoderB, INPUT);
//plus 
digitalWrite(encoderB, HIGH);

Zwei Arduino-Befehle a 4 Mikrosekunden Ausführungsdauer dauern zusammen 8 Mikrosekunden.

Ein Arduino-Befehl a 4 Mikrosekunden Ausführungsdauer dauert 4 Mikrosekunden.

Der Pin ist hinterher im selben Zustand.

klar, wär ne Maßnahme mit dem Anzeigen :blush: natürlich wird er hinterher in DDRD +DDRB dann trotzdem dieselben Einträge wie bei INPUT haben. Ist nur blöd, dass das in der refenz nicht richtig erklärt wird, dass mit dem HIGH dann das gleiche rauskommt.

vielen Dank aber, wieder etwas schlauer :)

Nur so zur Info: INPUT_PULLUP wurde erst später (1.0) dazu erfunden. Vorher war

pinMode(pin, INPUT);
digitalWrite(pin, HIGH);

die einzige Möglichkeit, den Pullup Widerstand zu aktivieren. ( Ausser natürlich direkte Register-Adresssierung) Geht natürlich immer noch.

Zu beachten ist evtl.auch , dass umgekehrt, nach

pinMode(pin, INPUT_PULLUP);
...
pinMode(pin,OUTPUT);

der pin als Output HIGH geschaltet ist.