-
Thread
Wärmezähler über optische M-Bus-Schnittstelle auslesen
@10,Return temp,°C,t_return,1 1,0A62bcd4@10,Temp diff,°C,t_diff,2 # [/c]
@10,Temp diff,°C,t_diff,2 1,0B26bcd6@1,Operating Hours,h,op_hours,0 1,0072bcd8@1,Serial Number,,sn,0 # [/code]
-
Thread
binär in dezimal
Soll das ganze in Software oder Hardware passieren? in Hardware gehts mit BCD-Addierern, genügend viele hintereinander, bei 2 Dezimalstellen sind das nur 2 und Überlauf jenseits der 99, wie hieß nur der TTL-BCD-Addierer oder gabs sowas nur in CMOS? 73 Christoph
ja das war auch die umgekehrte Richtung von BCD auf Binär, ich hab mir mal einen Umsetzer gebaut, der hat von BCD-Codierschaltern auf Binär umgesetzt, das ging mit Addierern Literatur: Elektor 3/1974 S.3-50, die haben das mit ca 10 Stück 7483 aufgebaut
-
Thread
integer in ascii-bit_vector wandeln
kurz zusammen: Du willst (wie zigtausend andere vor dir) eine Zahl in eine ASCII-Zeichenkette umwandeln. Das geht dann i.A. über einenkleinen Umweg: Integerzahl (oder ein Vektor, der eine Zahl darstellt) --> BCD --> ASCII http://www.lothar-miller.de/s9y/archives/34-Vektor-nach-BCD.html Und wenn du dann die BCD-Werte zwischen 0..9 erzeugt hast, mußt du nur eine ASCII-'0' dazuaddieren. Für Extreme gibts die Lösung auch kombinatorisch: http://www.lothar-miller.de/s9y/archives/67-Vektor-nach-BCD-kombinatorisch.html
-
Thread
7 Segment -> BCD Decoder Baustein gesucht
auf einem LCD Display ausgebe. Um nun Eingangspins zu sparen, würde ich gerne die Signale erst in BCD umwandeln, so wie es ein BCD -> 7 Segment Decoder macht, nur eben andersherum. Dann könnte ich den BCD Code in meinem Programm "decodieren", was programmtechnisch, sprich wegen der Zuordnung, ja keinen
fertige 7-Segment-nach-BCD-Umcodierer sind mir noch nicht untergekommen. Old-scool würde ich das so lösen: die 14 Anschlüsse der 7-Segment-Anzeigen auf 14 Adressleitungen (ggf. über eine Pegelanpassung)eines EPROMS (ab 27C128
-
Thread
7 SEGMENT ANZEIGE
starte T0 while( 1 ){ // Main-Loop forever call wait Abfrage der 1. 4 Pins umwandeln in 7-Segment anzeigen Digit 1 call wait Abfrage der 2. 4 Pins umwandeln in 7-Segment anzeigen Digit 2 } wait: while( TF0 == 0 ){} // warte, bis Bit gesetzt TF0 = 0
Danke nochmals. Also folgendes, ich versuche zwei bcd-werte auszugeben. Damit das flimmerfrei passiert sollte ein timer programmiert werden. Das ist genau das wo ich nicht mehr weiter komme. Von Timer habe ich einfach keine Ahnung. Es wäre einfach nett
-
Thread
Stoppuhr Zusatzfunktionen
R0,#04,rechts MOV R0,#0 rechts: CJNE R0,#0,mire MOV A,R4 CALL BCD7Seg MOV P1,A MOV P2,#00001110b mire: CJNE R0,#1,mili MOV A,R5 CALL BCD7Seg MOV P1,A MOV P2,#00001101b mili: CJNE R0,#2,links MOV A,R6 CALL BCD7Seg MOV P1,A MOV P2,#00001011b links: CJNE R0,#3,m1 MOV A,R7 CALL BCD7Seg MOV P1,A MOV P2,#00000111b m1: RET ;; Wandelt vom BCD-Code
-
Thread
Vorschlag zu Hex-Ziffern auf 7-Segment-Anzeigen
dann auch noch komplett ausnutzt und vor allem trivial einfach zu dekodieren ist. 8-Bit binär nach BCD kann man mit etwas Aufwand noch umwandeln. Aber spätestens bei 16-Bit binär nach BCD ist Ende Gelände.
Axel S. schrieb im Beitrag #5694726: > 8-Bit binär nach BCD kann man mit etwas > Aufwand noch umwandeln. Aber spätestens bei 16-Bit binär nach BCD ist > Ende Gelände. Und das gibst Du dann auf 7-Segment-Displays aus? Vielleicht noch mit 4511 Decodern?
-
Thread
aus zwei ascii ein uint8_t machen
normalerweise passen in ein uint8_t keine zwei zeichen. wenn du allerdings nur ziffern hast (z.b. bcd-kodiert) dann könnte das gehen. uint8_t packed = (bcd_left << 4) | (bcd_right & 0x0f);
mal an einem Beispiel klarer zu umreißen: '2' und '3' als ASCII in 23 (dezimal) oder 0x17(hex) umwandeln.
-
Thread
8bit binär => 3 mal 4bit bcd
Hallo alle zusammen, ich würde gerne einen 8 Bit Binärcode in einen aus 3 mal 4 Bit bestehenden BCD Code umwandeln, und das möglichst einfach, ich verwende dafür die Software XILINX (VHDL). Wie es dazu kommt? Ich habe mir seit längerem ein SPARTAN 3 Starter Kit gekauft und möchte nun ein paar kleine Programme schreiben, die ich dann natürlich anschließend mittels der BCD Anzeige anzeigen lassen möchte. Mein momentanes Problem ist, das ich es einfach nicht schaffe einen guten Weg zum Umwandeln zu finden. Ich habe mir schon etwas sehr einfaches überlegt, das jedoch nicht
-
Thread
Variable(unsigned short int) in 3*4bit Nibble umwandeln
V. schrieb im Beitrag #2521433: > Jetzt möchte ich diesen Wert mittels Cortex M3 in 3 Nibble umwandeln die > jeweils 4 bit groß sind. > > Soll heißen: Wenn der ADC einen Wert von 23 ausließt soll im 1 Nibble > 0000, im 2. Nibble 0010 und im 3. Nibble 0011 stehen. Bist du sicher, dass du BCD
Mal ganz davon abgesehen, ob die BCD-Darstellung wirklich so sinnvoll ist .... Ich würde das array schon anders anordnen oder gar ein 2D array benutzen: array[0], array[1], array[2] => zahl 1 array[3], array[4], array[5] => zahl 2
-
Thread
PIC Probleme mit Programm BIN zu BCD
Hallo, habe mit MPLAP versucht einen bin zu bcd wandler zu programmieren. Es sieht folgendermaßen aus: Loda: CLRF PONE CLRF PTWO SUBTWO MOVLW B'00001010' SUBWF INBIN,F BTFSC STATUS,0
FINISH INCONE INCF PONE,F GOTO SUBONE FINISH RETURN das umwandeln soll im unterprogramm Loda ablaufen. Wenn inbin z.b. 23 ist wird ptwo bis auf 2 erhöht alles soweit so gut aber beim nächsten schritt wäre ja inbin -7 und somit carry bit auf 0 und damit müsste er
-
Thread
Zahl aufteilen - Bascom
Möglicherweise wäre es sogar einfacher, in BCD zu zählen anstatt in einem Integer. Dann sparst du dir die Modulo-Rechnung, die braucht nämlich verdammt viel Platz und Rechenzeit.
@ bing: kannst du das mit dem BCD mal etwas erklären, oder hast du ein guten Link? Hintergrund ist der das ich später das DCF77 signal empfangen möchte und auswerten und da hab ich auch ihrgendetwas mit BCD gelesen und dann könnte es
-
Thread
AT89S8252
Ja eben das geht mit BCD viel einfacher :) Du zählst eine gewöhnliche Binärzahl hoch und konvertierst diese immer zur Ausgabe in BCD. Du kannst natürlich auch für jede Ziffer ein Register verschwenden :)
verstehe das leider nicht ganz wie du das genau meinst, und dann muss ich ja die zahlen noch in hex umwandeln um sie auf meiner 7-seg- anzeigen zukönnen.
-
Thread
10bit Wert => 4x 7 Segment
umrechnen lassen und damit habe ich meinen Eingang > der CASE Abfrage. Auf gut deutsch also in eine BCD-Darstellung umwandeln. Und das für eine schnarchlangsame Anzeige fürs Auge? Da wäre mir ein ROM zu teuer. Mit dem Shift-Add-3 Verfahren geht das ressourcenschonender... Siehe dort: http://www.lothar-miller.de/s9y/archives/34-Vektor-nach-BCD.html http://www.lothar-miller.de/s9y/categories/44-BCD-Umwandlung
-
Thread
std_logic_vector to integer
was das für Speicherwerte sind und was du mit dem counter vorhast. Evtl. kann man die Speicherwerte BCD-kodiert ablegen, dann hast du die Einer-/Zehnerdezimalstelle (oder man macht die BCD-Konvertierung beim lesen). Oder falls die Eingangswerte irgendeine Logik haben, das irgendwie geschickt auf den Speicher
output <= to_integer(unsigned(cnt)); Warum musst du eigentlich einen /Zähler/ in einen Integer umwandeln? Üblich ist es, mit dem Integer zu /zählen/ und dann als Port einen std_logic_vector zu nehmen...
-
Thread
Spannungsregler und potis
Beitrag #6771802: > und 10 > mini Mosfets zum 10 Widerstände Schalten. Oder 4 Widerstaende und BCD-Schalter.
Dieter schrieb im Beitrag #6772235: > Oder 4 Widerstaende und BCD-Schalter. Wobei dann schon wieder Logik erforderlich ist (man könnte natürlich ein Flashwandler nehmen da gibt's ja tatsächlich auch BCD oder HEX codierte die kein µP brauchen aber der Preis und
-
Thread
Preprocessor Addition von zwei zahlen und Umwandlung in String
dem Prerocessor sagen, dass es zuerst addieren soll und das Ergebniss der Addition dann in String umwandeln?
schrieb im Beitrag #5430593: > Kein Mensch braucht einen String im Speicher, der die Firmware in > BCD-Darstellung mit führendem 0x beinhaltet. Reiht sich irgendwann hinter > 640k ought to be enough for everybody ein. ;-)
-
Thread
LED Multiplex ansteuern
Servus Sven, Ich hab auch noch ne Routine für dich gefunden die dir eine 16-Bit Zahl in BCD umwandelt. Die BCD Zahlen kannst du dann auf deine 7-Segment Anzeige ausgeben: http://www.avr-asm-tutorial.net/avr_de/rechnen/konvert.html#bin2bcd
Stelle würde ich wie Peter schon sagte zwei Register zum Zählen nehmen und die vor jeder ausgabe in 4 BCD Zahlen umwandeln lassen. Zum Rückwärtszählen hät ich dir ein kleines Beispiel, dass mit dem Y-Register (16 Bit) arbeitet. [avrasm] init: ldi YL, $10 ;9999 in Y-Register laden ldi YH,
-
Thread
Spannung und Strom mit dem Mega8 messen
in binäre Daten um wandeln 2. Diese Daten nach der entsprechenden Formel in eine binäre Zahl umwandeln die dann schon direkt der Spannung entspricht. (mein code tut das nicht). 3. Die Spannung die jetzt als binäre Zahl vorliegt in einen Code für die Sieben-Segmentanzeige umwandeln. Dazu müsste man
Konstante) werden, falls man Referenzspannung und Vorteiler ungünstig gewählt hat. Daraus muss dann BCD gemacht werden. Das Umwandeln in "aktive Segmente" ist mittels Tabelle kein Problem. Die Anzeigen betreibt man am besten multiplex, man schaltet also die Segmente aller Stellen zusammen und sieht
-
Thread
binärwert in Hex wert umwandeln
Hallo. ich hab einen Binärwert in einem BYTE stehen, und möchte diesen in ein Hex wert umwandeln. Wie kann ich denn dass realisieren??
aus. Aber eigentlich sollte es in Hex > erscheinen. du willst also eine Zahl in einen String umwandeln...dazu gibt es die utoa()-Funktion, die kann auch unterschiedliche Zahlensysteme
-
Thread
aus c Programm ein Bash Script machen
Hallo zusammen, ich bin ein Newbi in Sachen bash Scripte...Da ich ein C Programm in ein Bash Script umwandeln muss wollte ich fragen ob ich eionen Fehler gemacht habe? Oder es Verbesserungen im Syntax gibt? [code] #!/bin/bash second=i2cget -y 1 0x51 0x03 minute=i2cget -y 1 0x51 0x04 hour=i2cget -y 1 0x51 0x05 #Uhrzeit berechnen BCD kodiert second_calc= ((($second&0x70)>>4)*10)+ ($second&0x0F) minute_calc= ((($second&0x70)>>4)*10)+ ($second&0x0F) hour_calc=((($second&0x70)>>4)*10)+ ($second&0x0F) uhrzeit="${hour_calc}:${minute_calc
-
Thread
7Segment-Baustein Nibble rein, Byte raus?
überfordert. Benötige ich einen BCD zu 7Segment Baustein? Danke und Gruss Spice
Eigentlich schon einen BCD to 7-segment, aber 4 Bit ist nicht gleich BCD.
-
Thread
89c51 assembler Binärzahl ausgeben
Drehzahl nach erfassung und Umrechnung als Binärzahl vorliegt und ich nicht weis, wie ich diese Zahl in BCD umwandeln soll, um schließlich das Ergebniss über BCD zu 7-Segment-Decoder anzeigen zu können. Die Zahl hat eine Größe von 13 Bit Eigendlich müsst das doch ein alltägliches Problem beim Programmieren
Hallo Jochen, http://www.8052.com/codelib/bcd.asm MfG Rainer
-
Thread
Ein Vorschlag zur Intervall-Arithmetik
Um dieses Problem zu umgehen, benutzt man für Intervall-Arithmetiken mit garantierter Genauigkeit BCD-codierte Fließkommazahlen. Welche Vorteile soll es denn gegenüber einem BCD-codierten Fließkommaformat haben? Beseitigt es das Wandlungsproblem?
800..+7ff Man muss nur noch tM (unsigned integer) und k-800 (signed integer) in Hex-Strings umwandeln.
-
Thread
Binär -> Dezimal / BCD
Hallo, hat jemand einen Vorschlag, wie ich eine Binärzahl am besten in eine Dezimalzahl umwandeln kann, um die Zahl dann Stelle für Stelle in ASCII-Code umzuwandeln und an ein LC-Display zu übertragen (Wenn ich nur Binärvariablen habe)? Danke Ole
-
Thread
7 Segment Multiplexing Zähler
> #include <util/delay.h> #define F_CPU 8000000 // Kodierung der 7 Segment Anzeige uint8_t bcd2seg [10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, // 0-4 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; // 5-9 volatile uint8_t data[4] = 0; // data für Anzeige volatile uint8_t flag100ms; // Zahl in Daten für Anzeige umwandeln void convert(uint16_t zahl) { data[3] = ~bcd2seg[zahl % 10]; zahl /= 10; data[2] = ~bcd2seg[zahl % 10]; zahl /= 10; data[1] = ~bcd2seg[zahl % 10]; zahl /= 10; data[0] = ~bcd2seg[zahl
-
Thread
Uhr RV3029 programmieren
keine 65536 Sekunden usw.). Nimm unsigned char oder besser uint8_t. Viele RTC zählen im veralteten BCD-Format, dann muß man noch nach binär umwandeln (C rechnet intern nur binär). Zeit lesen bzw. setzen muß man in einem I2C-Paket machen. Sonst kann zwischen den Paketen ein Überlauf erfolgen und man
vorher angeschaut den du gelinkt hast, wollt mal fragen, warum hat derjenige nicht die daten erst in bcd format umgewandelt, um in die uhr zu laden, die uhr kann doch nur das bcd format.Danke.
-
Thread
DCF-Signal richtig auswerten
BCD volatile uint8_t MON_E:4; // Monat BCD volatile uint8_t MON_Z:1; // Monat BCD volatile uint8_t JAHR_E:4; // Jahr BCD volatile uint8_t JAHR_Z:4; // Jahr BCD
Echtzeit auszuwerten, also direkt beim Eintreffen. Dabei kann man auch gleich dieses beknackte packed-BCD in Binär umwandeln. Das erleichtert die Zahlenausgabe. Bit-Structs sind nur in Ausnahmefällen wirklich sinnvoll, erzeugen aber viel umständlichen Code. Ich hab auch ne LED mit an den MC gehängt, die
-
Thread
Anfängerfrage: Wert umwandeln
einem weiteren Atmega diese LED's wieder auslesen und die ganze Sache wieder in einen Zahlenwert umwandeln so das der Atmega 2 Werte miteinander vergleichen kann. Das Auslesen ist einfach, nur wie mache ich aus den Signalen von PIC und PIND etwas das ich mit < oder > vergleichen kann? Das ist der Code
Aber nur, wenn du in BCD rechnest. Beachte hier die spezielle Situation.
-
Thread
Umwandlung von ASCII-Zeichen, die Hexzahlen darstellen
zusammen, ich möchte gerne ASCII-Zeichen eines Strings, die Hexzahlen dastellen, in Dezimalzahl umwandeln. Also: Buffer[4]== '2' Buffer[5]== '7' Buffer[6]== '1' Buffer[7]== '0' 2710(hex) = 10000(dec)! wie kann ich das am besten in C bewerkstelligen? Grüße
In welcher Form willst Du die Dezimalzahl haben? BCD, packed BCD oder als fertigen String?
-
Thread
12 bit binär->BCD?
Hallo! Ich habe ein paar Fragen: 1.Wer kann mir sagen, wie ich 12 bit (Binär) -Zahlen in BCD umwandeln kann? Bzw. Den passenden Algorithmus in C? 2. Wie kann ich diese dann in ASCII umwandel (C??
-
Thread
Binärzählwert als Dezimalzahl auf LCD-Display
das ganze nur mit Hilfe von IC's. Hab schon mal gedacht mit Umwandlern die den Binärwert in einen BCD-Code umwandeln, aber bin da auf keine vernünftige Lösung gekommen. Für Tipps,Anregungen und Hilfe wäre ich sehr dankbar. Gruß Barni
schrieb im Beitrag #2194724: > Hab schon mal gedacht mit Umwandlern die den Binärwert in einen BCD-Code > umwandeln, aber bin da auf keine vernünftige Lösung gekommen. Ohne µC scheint das ja eine anspruchsvollere Aufgabe zu werden. Der Binärzähler darf sicherlich auch nicht durch einen Dezimalzähler
-
Thread
LCD ansteuerung (ausgabe von variablen wörtern bzw. zahlen)
Zahlen binär hochzählen und dann jeweils durch 10 teilen und die Nachkommastelle dann in ASCII umwandeln und zum LCD senden? Oder hat jemand eine Idee wie es vernünftiger zu realisieren ist. Ich habe mir da noch nicht soviele Gedanken darüber gemacht. Zweite frage: Wie kann ich es umgehen bei
zählt, sondern in BCD. Also nach 0x09 kommt nicht 0x0A sondern 0x10 usw. Dann stellt jedes Nibble schon ein fertiges Digit dar. Man muss es nur noch extrahieren, den Code für '0' noch addieren und hat schon das Zeichen
-
Thread
DS3231 Zählfehler
Ds3231 zählt in bcd Nachtrag: lass es mal als hex ausgeben, dann erkennst du was das heißt
Ok mit dem Befehl var1 = Makedec(var2) kann man BCD Darstellung in Decimal umwandeln. Jetzt funktioniert es. Danke für die Hilfe Robin
-
Thread
8bit binär nach 7-Segment-Anzeige???
Hallo, wollte mal fragen wie das mit den BCD Umwandlern funktioniert. Habe in einer ELV-Journal-Zeitschrift eine Schaltung mit so einem Wandler gefunden allerdings verstehe ichs nicht ganz. Dieser Baustein hat nur 16 Pins. Man braucht doch um
Als erstes brauchst Du 3 leere Bytes für die Dezimalstellen. Fortgeschrittene arbeiten mit "packed BCD" in Nibbles. das kostet nur 1 1/2 Bytes. 1. Prüfe Deine Binärzahl ob Sie größer als 99 ist. 2. Wenn ja -> incrementiere die 100er Stelle. 3. Dann Subtrahiere 100 und springe wieder zu 1
-
Thread
STM32 Int, Float, Double
3.1415927 rein. Oder 123456789. Nur wird das halt binär kodiert und nicht zeichenweise wie ASCII oder BCD. MFG Falk
>habt ihr eine Idee, wie man einen Wert(float) in Char array umwandeln >kann. sprintf, snprintf?
-
Thread
-
Thread
std_logic_vector zu ASCII wandeln
zuletzt im http://www.mikrocontroller.net/topic/148422 Wenn du dann die drei Dezimalstellen in BCD-Darstellung hast, dann stellt du dir die Frage: wie komme ich von binär 00000000 (=0) nach 00110000 (=ASCII-Null)? Hier eine Tabelle zum Thema: dez binär ASCII-binär 0 00000000 00110000
halt gucken ... was schon dazu geschrieben wurde: https://www.mikrocontroller.net/search?query=bcd+umwandeln&forums[]=9&sort_by_date=1 > also brauchst du im worst case ca 100 durchläufe ... Es geht schneller: https://www.mikrocontroller.net/topic/268503
-
Thread
Verknüpfung AtMega32 und SPS
SPS einen 5V Eingang eines AVr Controllers schalten. Ich will mit einem Ausgangsbyte (0...24V) BCD-codierte Zahlen an ein Eingangsbyte (0...5V) eines Mikrocontrollers schicken
Ich dachte, dass ich bit für bit umwandeln kann... und somit auf ein byte komme... Es sollen praktisch 8 ausgänge der sps auf 8 eingänge am µC verdrahtet werden