Kann man unter Bascom eine Portanweisung wie &B00000000 binär hochzählen lassen, also immer das nächst höherwertige Bit aktivieren ohne Lookuptables zusammenzuschustern? Danke
Controllus Interruptus schrieb: > Kann man unter Bascom eine Portanweisung wie &B00000000 binär hochzählen > lassen, also immer das nächst höherwertige Bit aktivieren ohne > Lookuptables zusammenzuschustern? > Danke 0xB00000000 ist nur eine andere Darstellung für 0 als verwende einfach eine 0 und rechte + 1.
Controllus Interruptus schrieb: > Kann man unter Bascom eine Portanweisung wie &B00000000 binär > hochzählen > lassen, also immer das nächst höherwertige Bit aktivieren ohne > Lookuptables zusammenzuschustern? > Danke 0000 0001 (1) x2 0000 0010 (2) x2 0000 0100 (4) x2 0000 1000 (8) und so weiter...
Controllus Interruptus schrieb: > Kann man unter Bascom eine Portanweisung wie &B00000000 binär hochzählen &B00000000 ist keine Portanweisung sondern in Bascom einfach nur eine Zahl in binärer Schreibweise. Hochzählen dann einfach mit fortlaufendem Addieren von eins :)
Peter II schrieb: > 0xB00000000 ist nur eine andere Darstellung für 0 > > als verwende einfach eine 0 und rechte + 1. dann ist die anweisung auch als absolute Zahl machbar? etwa portd = 200?
Controllus Interruptus schrieb: > dann ist die anweisung auch als absolute Zahl machbar? etwa portd = 200? ja, es ist genau das gleiche.
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 ;-)
Ok, ist für ne r2r ladder. ich will halt die Voltzahl schrittweise erhöhen.
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.
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.
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.
Ist wahrscheinlich unglücklich ausgedrückt. Wir meinen wohl das gleiche. Guck ich mir an. Danke.
Controllus Interruptus schrieb: > binär hochzählen > lassen Eine CPU zählt immer binär, daran kannst Du nichts ändern. Der Bequemlichkeit halber kann man aber einen Wert in verschiedenen Formaten dem Compiler übergeben, der macht dann sofort binär daraus: 'a' == 97 == 0x61 == 0b1100001 == 0141 ASCII, dezimal, hex, binär, oktal, alles der gleiche Wert.
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.
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.
@Mike A.: man beachte "Voltzahl immer ..." 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.
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.
Controllus Interruptus schrieb: > Jo, hast recht. Durch einfaches aktivieren, wird nix deaktiviert. Ich hab' doch gar nicht von Aktivieren oder Deaktivieren gesprochen...(?)
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.
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.