Bascom binär hochzählen

Gast #3922727
Lesenswert?

npn schrieb:
> Controllus Interruptus schrieb:
>> immer das nächst höherwertige Bit aktivieren
>
> und
>
> Spezi schrieb:
>> Hochzählen dann einfach mit fortlaufendem Addieren von eins :)
>
> sind zwei verschiedene Sachen ;-)

Ehrlich gesagt, weis ich nicht, was Controllus Interruptus genau meint.

@Controllus Interruptus: Schreib mal eine Reihe von hochzählenden 
binären Zahlen auf, wie du sie gerne hättest - in der Art wie npn es 
gemacht hat. Vielleicht geht auch was mit shift.
Gast #3922742
Lesenswert?

R2R netzwerk ist klar, oder? Nun will ich auf knopfdruck den µC dazu 
bringen, die Ausgänge so zu schalten, dass die Voltzahl immer in 
gleichen Schritten erhöht wird. Was ja durch einfaches binäres 
hochzählen erreicht werden müßte.
Gast #3922747
Lesenswert?

Controllus Interruptus schrieb:
> R2R netzwerk ist klar, oder? Nun will ich auf knopfdruck den µC dazu
> bringen, die Ausgänge so zu schalten, dass die Voltzahl immer in
> gleichen Schritten erhöht wird. Was ja durch einfaches binäres
> hochzählen erreicht werden müßte.

Mir ist noch nicht klar, was du mit "binärem hochzählen" meinst. Es 
reicht aus, wenn du hochzählst, also immer nur eins addierst.
https://www.youtube.com/watch?v=AulX1OM7RwE&list=UUiqd3GLTluk2s_IBt7p_LjA

Zwar Englisch aber gut erklärt.
Gast #3922756
Lesenswert?

Controllus Interruptus schrieb:
> die Ausgänge so zu schalten, dass die Voltzahl immer in
> gleichen Schritten erhöht wird.

Die "Voltzahl" (auch "Spannung" genannt) wird durch einfaches 
Incrementieren (+1 addieren) in gleicen Schritten erhöht, wie es auch 
"Spezi" schreibt.

Spezi schrieb:
> Es reicht aus, wenn du hochzählst, also immer nur eins addierst.

Aber am Anfang hast du geschrieben, daß du

Controllus Interruptus schrieb:
> immer das nächst höherwertige Bit aktivieren

willst. Das geht durch eine Muliplikation mit 2, wie ich es geschrieben 
hatte, bzw. durch einmal schieben nach links (ist das gleiche).

Das sind aber zwei verschiedene Sachen. (x=x*2  oder  x=x+1)

Ich vermute mal, wenn du schon das R2R angesprochen hast, daß du einfach 
nur hochzählen willst. Also dann mußt du einfach nur immer 1 addieren.
Gast #3922762
Lesenswert?

npn schrieb:
> Ich vermute mal, wenn du schon das R2R angesprochen hast, daß du einfach
> nur hochzählen willst. Also dann mußt du einfach nur immer 1 addieren.

Das kommt drauf an, ob damit z.B. ein Dimmer gesteuert werden soll, der 
für gleichmäßige Helligkeitsstufen geometrisch hochzählen müßte, also 
mit konstanter relativer Stufenhöhe, i.e. eine Multiplikation des Wertes 
mit einem konstanten Faktor.
Gast #3922779
Lesenswert?

npn schrieb:
> Das geht durch eine Muliplikation mit 2, wie ich es geschrieben
> hatte, bzw. durch einmal schieben nach links (ist das gleiche).
>
> Das sind aber zwei verschiedene Sachen. (x=x*2  oder  x=x+1)
>
> Ich vermute mal, wenn du schon das R2R angesprochen hast, daß du einfach
> nur hochzählen willst. Also dann mußt du einfach nur immer 1 addieren.

Jo, hast recht. Durch einfaches aktivieren, wird nix deaktiviert.
Gast #3923479
Lesenswert?

Du willst also mit einem R2R Netz eine treppenförmig ansteigende 
Spannung erzeugen. Dafür brauhs du einen Zähler, der ganz normal 
hochzählt:

0 = &B00000000
1 = &B00000001
2 = &B00000010
3 = &B00000011
4 = &B00000100
...
255 = &B11111111

Falls das ein A/D Wandler werden soll, braucht der dann allerdings bis 
zu 256 Schritte zur Messung einer Spannung. Das kannst du auf 8 
reduzieren:

Zuerst setzt du das höchste Bit.
Dann nutze den Komparator, um festzustellen, ob das zu viel war.
Wenn ja, setze es zurück auf 0. Wenn nein, lass es an.

Im nächsten Schritt setzt du das zweithöchste Bit.
Dann nutze den Komparator, um festzustellen, ob das zu viel war.
Wenn ja, setze es zurück auf 0. Wenn nein, lass es an.

Im nächsten Schritt setzt du das dritthöchste Bit.
... usw.

Bis du beim niedrigsten Bit angekommen bist.

Das höchste Bit (von 8) hat den Wert 128. Das darunter hat den halben 
Wert (also 128/2). Das darunter hat wieder den halben Wert (also 
128/2/2). Das niedrigste Bit hat den Wert 1.
Gast #3923990
Lesenswert?

Spezi schrieb:
> Stefan us schrieb:
>> 128/2/2). Das niedrigste Bit hat den Wert 1.
>
> und als einziges eine ungerade Wertigkeit. Das kann auch in einem
> Fluxkompensator (falls ein solcher in Planung sein sollte) bei der
> Kompensation von ungeraden Stömungen aushelfen.

Das ist nicht Marty und du bist nicht Doc Brown. Das Auto fährt auch 
gerade, wenn man das Lenkrad festhält. Dafür ist nicht der 
Fluxkompensator zuständig. Demzufolge braucht man auch eine ungerade 
Strömung nicht kompensieren und das niedrigste Bit ist immer noch 1...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren