-
Thread
Hexzahl per Assembler in Dezimal
Diese Werte sind in einer Tabelle als Hexzahlen dargestellt. Ich soll nun diese in Dezimalzahlen umwandeln, ohne ein externes Programm dafür zu verwenden. Das heißt, man bekommt eine Tabelle mit Dezimalzahlen, womit auch Laien etwas anfangen können. Habt ihr vielleicht eine Idee wie das möglich wäre
atmel, weiter. Da ist eine AVR-Assemblerroutine beschrieben, mit der man binär- bzw. hex-Zahlen in BCD-Form umwandelt.
-
Thread
Dezimalzal mit LCD
Du musst die Zahl ins BCD-Format umwandeln, schau dir mal die Appnote 204 von Atmel an.
avr_de/rechnen/index.html Aber hast Du bestimmt schon selber gefunden. Bei der Wandlung von binär nach BCD muss man natürlich immer mit der nächstniedrigen Dezimalstelle anfangen, die die Zahl haben kann, also bei 8 Bit mit 100, bei 16 Bit mit 10.000. MfG Gerd
-
Thread
LM75 Temperatur von bin auf dec für LCD ausgeben??
Befehl hat, dann wärs ganz einfach (alles andere könnte man übersetzen). 16 Bit binär nach packedBCD für 8051: BIN to BCD: For R2=#16d ;Bit-Anzahl mov R0, #Integer ;LSB clr C for R3=#2 ;Byte-Anzahl=2 mov A, @R0 rlc A mov @R0, A inc R0 next mov R0, #BCD_Wert for R3=#2 ;Byte-Anzahl=2 mov A, @R0 addc A, @R0 da A mov @R0, A inc R0 next Next ret
-
Thread
Frequenzerzeugung
Muss einen Wert von 0-50 (50-100 an einer 7-Segemten Anzeige) in eine > Frequenz von 10kHz-20kHz umwandeln mit eine Abstufung pro Schritt von > 200Hz: Den digtialen Wert per DAC (R2R-Widerstandsnetzwerk o.ä.) in eine Spannung 0 - x,x V umwandeln und damit einen U/F-Umwandler betreiben. Was nimmt
Andreas S. schrieb im Beitrag #7525736: > in eine > Frequenz von 10kHz-20kHz umwandeln Norbert schrieb im Beitrag #7525883: > Also in meinem Buch liegen zwischen 10 und 20000 deutlich mehr als > fünfzig 200er Stufen. Tja.
-
Thread
Gray Code und Zweierkomplement Addition
Ich habe eine Zahl im Gray Code welche Ich umwandeln würde und dann eine Zahl im Zweierkomplement. Ist es schlauer beide mit dem Datentyp signed zu rechnen oder eher wenn Ich es in unsigned rechne oder was würdet ihr empfehlen ? Danke für die
alten/ "y". BTW, als Stichwort für die Suche mit Google: was du machen willst, ist eine Binär-nach-BCD Umwandlung. Sieh dazu mal den https://www.mikrocontroller.net/topic/436619 und die Links darin an...
-
Thread
Byte in 2*4Bit aufteilen
schrieb im Beitrag #2710327: > Aber wie könnte ich jetzt A und B addieren, wahrscheinlich in DEC > umwandeln oder? c = a + b Gruss k.
Nunja ich möchte das Ergebnis der Addition auf PORTB in BCD-Code ausgeben!
-
Thread
binärzahl vom register mit lcd anzeigen
mit einer binärzahl aufruft, angezeigt. Wie kann ich also eine Binärzahl in eine Dezimalzahl umwandeln und dann als "25" auf dem Display anzeigen?? Danke für eure Antworten
Du musst die Binärzahl in einzelne BCD-Ziffern umwandeln und dann 0x30 addieren, damit es ASCII-Code wird. Diese kannst du dann an das Display senden.
-
Thread
Arduino: Problem beim casten
ausgegeben. Logisch. Casten bringt hier rein gar nichts. Du muss die Zahlen in einen String umwandeln. itoa() ist dein Freund. itoa(minute, text, 10); >const char text[] = {"hier gebe ich den anzuzeigenden text ein"}; >Keine Ausgabe auf Matrix-"Display": >const char text[] = {(char
Kommt aus einer RTC nicht "normalerweise" BCD raus? Dann wäre itoa() oder sprintf() jetzt nicht so ganz passend. Eher die nibble trennen und 0x30 dazu.
-
Thread
Umwandlung integer Zahl in einen String (Hilfe)
Also man kann eine Zahl nicht "umwandeln". Es gibt halt bytes auf Assembler Ebenee, wichtig ist wie du das interpretierst. In C ist es z.B. so, das ein String aus einer folge von Characters besteht, abgeschlossen durch einen \0 (NULL)
die "0" auf 48dez also 30hex oder 110000bin man muss also nur etwas schieben. Damit wird auch das BCD-Format noch verständlicher. Das spart nicht nur Platz, das ist auch einfach durch schieben zu verarbeiten.
-
Thread
PC8583 max Jahr oder doch was anderes?
) mov r6, a [/avrasm] Kann aber auch sein, daß nicht binär gerechnet wird, sondern in packed BCD. Assemblerprogrammierer machen das gerne, um die Umrechnung in Digits bei der Anzeige zu ersparen. C-Compiler rechnen nur binär.
Float Add 0x60EB: Float Mul 0x6163: Float Div 0x6212: Float Compare 0x6276: 32 Bit in Float umwandeln 0x627A: 16 Bit in Float umwandeln 0x627E: 8 Bit in Float umwandeln 0x62B2: Float in 16 Bit umwandeln [/code]
-
Thread
16Bit dual -> Dezimalausgabe auf LCD
LCD in dezimaler Schreibweise ausgeben möchte. Welche Möglichkeiten hab ich denn? Zuerst umwandeln von Dual nach BCD und dann in ASCII oder gibts noch einfachere Methoden? danke einstweilen, Peter
Lösung des Problems bereits genannt. Ausserdem gibts zu dem Thema tonnenweise Threads, einfach mal BCD als Sortierbegriff eingeben. MfG Falk
-
Thread
Ports sparen 7 Segment
Wenn ich meinen AVR direkt an den BCD/7Seg. Decoder anschliessen würde dann bräuchte ich ja für jedes Segment 4 Ports. Wäre es möglich die Daten einfach seriell aus einem Port an einen Seriell/parallel decoder und erst dann an BCD/7Seg.
Hallo Fritz. Wenn du serielle Daten vom AVR in parallele Daten zu den 7Segement Anzeigen umwandeln willst hilft ein Multiplexer nicht weiter, weil der ja eben parallele Daten in Serielle umwandelt. Nun könnte man entsprechend einen DEmultiplexer verwenden, aber das macht wenig sinn, weil du für
-
Thread
Galvanische Trennung bei Schaltregler MC34063
@ Eric (Gast) >umwandeln. Ich bin mir sehr unsicher ob es so wie in der Abbildung >gezeigt richtig bzw. überhaupt möglich ist Siehtst du irgendwo eine Trennline zwischen Ein- und Ausgang? Ich nicht. Lies mal was über
index.html?;ACTION=3;LA=2;ARTICLE=35078;GROUPID=4956;SID=13TZoIY38AAAIAAFSauKA0d06ca61da5909e2039bef56bcde34fb und der ist mit 24 V DC (Eingang) - 5 V DC (Ausgang) angegeben (ich habe aber 30 V DC am Eingang) und noch dazu recht teuer.
-
Thread
In Hex zählen!?
In mir keimt der Verdacht du möchtest eigentlich in BCD zählen (BDC = Binary Coded Decimal) Also: 0x00, 0x01, 0x02, ... 0x08, 0x09, 0x10, 0x11, ... 0x18, 0x19, 0x20 ... Ansonsten macht deine Frage nämlich absolut keinen Sinn. Dein µC rechnet weder
Packed-BCD?
-
Thread
AVR GCC Hex in Dez wandeln
Umwandeln... du meinst als String? Also einen String (char *) mit einer Hex-Zahl in einen Integer umwandeln...? Dafür gibts dieses utoa, ltoa, strtoul-Gerümpel. Umgekehrt gehts auch.
Das ist nicht mein wirkliches Problem. Habe jetzt gefunden was falsch läuft: Ich muss Zahlen von BCD nach int und umgekehrt wandeln können. Gibt es da eine fertige AVR GCC Funktion ? Danke Gruß Steffen
-
Thread
Suche C-Funktion DEZ --> HEX umwandeln
ganz sicher willst du von binär in irgendetwas umwandeln, denn für uP aller art gibt es nur binär werte. benutz mal die suche zum thema bcd, sonst ist 5 einträge unter diesem das genau gleiche thema...
Hallo Tobi! Was meinst du mit binär? Ich möchte z.B. nur einen Dezimalwert 16 umwandeln, so dass der Hexwert 10 umgerechnet wird.
-
Thread
[PIC18]RTC Datenbits umwandeln
output_high(RW); delay_us(2); } [/c] Also bräuchte ich irgendwas womit ihc das umwandeln könnte. int to string funktioniert soweit (sprintf), jedoch kommt ab einer gewissen zeit nur noch blödsinn raus (anfangs zählt er gut, aber dann gehen die sekunden rauf bis 90 und dann kommen erst
@ Markus Das Ding zählt im BCD Code. Wenn du 59 hex ausliest kommst du mit printf auf 89 (5*16 +9). So gehts: char einer,zehner; einer = (wert & 0x0F) + '0'; zehner = (wert >> 4) + '0';
-
Thread
variable auf lcd ausgeben (assembler)
Die 8 Bit in 3 BCD Ziffern umwandeln, also 3 Byte zwischen 00 und 09, dann mit 30 hex verODERn, das ergibt ASCII-Ziffern 30-39 hex, und nacheinander ausgeben. Die Umwandlung besteht aus mehreren Divisionen, deren Rest jeweils die BCD-Zahl enthält.
-
Thread
8 stellige 7 Segment anzeige
schreibt man dann die Daten in den Speicher des Bausteins. Man kann das auch so machen, dass nur einen BCD-7Segment-Decoder für alle Anzeigen benutzt, und die Anzeigen dann multiplext. Das wären weniger Bausteine und auch wewniger Stromverbrauch...
eines NPNs, der Emitter an Masse und die Basis über 3,3K Widerstände an die Ausgänge eines 4017(?) BCD zu Dezimal Decoder(!). Die A,B und C Leitungen gehen in PORTD.0-2 Vor den je einem Basiswiderstand muss eine 1N4148 Diode an einen Taster geleitet werden, wobei alle 8 Taster auf der anderen Seite
-
Thread
Drehzahlanzeige auf 3x 7-Segment
die Hunderterstelle, l die Zehnerstelle und k die Einerstelle. Das nennt man übrigens "Binär-zu-BCD-Umwandlung". Eine solche findet übrigens immer statt, wenn zu einer Zahl der entsprechende String berechnet wird.
Beruf gewählt, oder die Lehhhhhrer können DAS auch nuhr aus Quellen die nicht optimal sind!! BinToBCD verabschiedet sich heute und hat morgen auch noch gute Vorschläge. Gruß Fred ps ich bin ein "Rechtschreibkünster under Deuschlands Sonne"
-
Thread
STM32F103 Blue Pill Board: Verwendung der RTC mit 32khz
= 0x1; sTime.Minutes = 0x0; sTime.Seconds = 0x0; HAL_RTC_SetTime(&hrtc, &sTime, FORMAT_BCD); DateToUpdate.WeekDay = RTC_WEEKDAY_MONDAY; DateToUpdate.Month = RTC_MONTH_JANUARY; DateToUpdate.Date = 0x1; DateToUpdate.Year = 0x0; HAL_RTC_SetDate(&hrtc, &DateToUpdate, FORMAT_BCD
+ 3600; /* In Normalzeit UTC hh:mm:ss umwandeln */ ptr = localtime(&value); ptr->tm_isdst = true; } /* In eigene Struktur kopieren */ memcpy((void*)&mytime,ptr,sizeof(struct tm)); // mytime
-
Thread
umwandlung in ascii code
Hallo Denis, Du musst die Hexzahl(bin) zunächst in eine Dezimalzahl(bcd) umwandeln. bin2bcd8 : http://www.atmel.com/dyn/resources/prod_documents/doc0938.pdf Anschließend stehen die Dezimalzahlen dann einzeln in den entsprechenden Registern. z.B. 245 -> r16=2, r17=
-
Thread
Seriell / Parallel Umwandlungs Schaltung gesucht
ungünstig... Also suche ich einfach ne Schltung, welche den von der Steuerelektronik augegebenen BCD Code zu nem Seriellen Signal umwandeln kann und dann bei der 7-Segment anzeige wieder zurück in den BCD Code umwandelt. Ich hoffe Ihr könnt mir helfen! Danke
-
Thread
Drehzahl Messung die Xte...
an T1 anschließen. Alle 300ms Timer1 auslesen und danach löschen, das Ausgelesene in Ziffern umwandeln, ans LCD schicken, 2 Nullen hinterher schicken, fertig... ...
und ich werde mich heute abend mal wieder hinsetzen und ausprobieren. Ist ja im Prinzip wie die BCD Arimetik ?! Nur nicht mit Konstanten sondern mit Messwerten ?! Gruß Dennis
-
Thread
Tastatur selber erstellen
beschäftigt. Wobei ich am überlegen war, dass ich mit zwei externen TTLs die eine Dezimalzahl(0-9) in eine BCD Zahl umwandeln, dann könnte man an einen Port ohne großen Aufwand bis zu 100 Tasten anschließen. Allerdings brächte man auch hier an jeder Taste zwei Dioden zu den beiden TTLs. Ich selbst möchte
Signale verarbeite, weil ich keine Ahnug habe was das für welche sind. Übrigens, das mit dem Umwandeln in ASCI-Code lässt sich bestimmt leicht durch Bitmanipulation bewärkstelligen, du musst halt schaun, dass du die Tasten in einer passenden Reihenfolge anschließt. Andy
-
Thread
[Visual Basic] Mit Binärdaten arbeiten.
Also bedeutet das eventuell, das ich meinen wert der Textbox ersteinmal "manuell" in eine ganzzahl umwandeln muss z.b. "01010101" in 85 und die 85 dann als datentyp byte per Serieller Schnitstelle ausgeben muss? Weil das wäre ja umständlich wenn ich da evtl eine wertetabelle abgleichen muss. Ich hoffe
Erwartet man 8 Bit mit dem binären inhalt von 85d kann man es so verschicken, ansonsten muss man es dann BCD wandeln, und die zwei tetraden mit 30h "geodert" versichen, dann bekommt man 2 ASCI Zeichen unswar die '5' und die '8' also 35h und 83h. Gruß, JJ
-
Thread
Pin-Code Abfrage
mehr.. Das LCD wird mit der Lib aus dem Mikrocontroller Tutorial betrieben, als Code lese ich BCD ein, die Funktion "Einlesen();" wandelt mit das dann in ein char Element um. Allerdings schaffe ich es nicht, den Code in ein int-Array zu packen ... Die Zahlen zeigt es richtig an, nur das Umwandeln
Terminierungszeichen '\0' wie bei C??? also eine Arraylänge von 5? Mit dem einlesen des Ascii, bzw BCD-Codes hatte ich keine Probleme, for schleifen hatte ich jede Menge ausprobiert, find ich auch am Besten, erst als es nicht funktioniert hatte hatte ich einen so umständlichen Text schreiben müssen..
-
Thread
Eigenprojekt für eine Geschwindigkeitsanzeige
progge aber lieber in ASM). Wenn man das über Logic Gatter machen würde brächte man Zähler, HEX->BCD Wandler, Siebensegmenttreiber, einstellbare Taktgeber und jede Menge Steuerungslogic. Zu Deutsch das würde ein ziemliches Chipgrab werden (vom Routing mal ganz abgesehen). Mit nen µC wird das erheblich
Werte werden voneinander abgezogen. Die Differenz kann man dann umrechenen und in 7-Segment-Code umwandeln oder direkt mit einer Look-Up-Table umwandeln. Programmieraufwand evt. 1 Stunde, das wars. cu Hauke
-
Thread
Taschenrechner in Hex/binär
angucken, dann siehst du, daß du mit der Darstellung nichts anfangen kannst. Zumal Taschenrechner mit BCD rechnen.
Mein Schulrechner Casio fx-9? kann dec/hex/oct/bin rechnen und umwandeln. Bisher hat das immer gereicht.. PS: der win7 Bordrechner kann das inzwischen auch. Der iOS interne auch. Kann mir nicht vorstellen dass $Unix da passen muss, zumal iOS ja ein BSD ist.
-
Thread
Bascom: 10 stellige Hexzahl in Dezimalzahl wandeln
vermutlich) an der Wandlung mit STR, um die Zahl auszugeben. Daher auch der Vorschlag das ganze als BCD zu rechnen. Dann brauchst du keine String Umwandlung :-)
Karl heinz Buchegger schrieb: > Daher auch der Vorschlag das ganze als BCD zu rechnen. > Dann brauchst du keine String Umwandlung :-) Jau, das macht Sinn. Leider reicht der ATiny2313 nicht, um das mit Bascom umzusetzen. Zumindest kenne ich mich mit Bascom zu wenig aus,
-
Thread
2Bytes in einem vereinen --> Binärcode
eingegeben, das dürfte ja aber kein Problem sein. Nun möchte ich die Zahl im Gesamten in Binärcode umwandeln. Dafür habe ich ein Array von 8 Feldern. Das ganze soll nur für zahlen bis 256 funktionieren, dass wäre ausreichend. In einem weiteren Byte steht der Exponent.Hier mal ein Beispiel Byte1: 2 Byte2
10: (2*100)+46=246. Das müsste ja so klappen. Nun möchte ich diese Zahlen nur noch in Binärcode umwandeln, und dann bitweise in ein Array schreiben. Das ich dann folgendes Array habe bei 246: {1,1,1,1,0,1,1,0}. Bietet dafür GCC schon eine fertige Funktion? Nun weis ich noch nicht, wie ich am besten
-
Thread
32Bit Division mit inline Assembler
Bei der Assemblerprogrammierung kann ich Dir nicht weiterhelfen. Hier gibt es die BCD-Bibliothek "decNumber" mit der man die Grundrechenarten mit bis zu 34 Dezimalstellen bekommt: http://speleotrove.com/decimal/ Das ist reines C und die Beispielprogramme sollten Dein Problem abdecken
Assembler eine 64bit-Zahl (100Mio)² durch eine 32bit-Zahl (200Mio) und gibt sie an ein Display als BCD-Ziffern aus. Dazu habe ich Biruas 32/32-Bit-Routine auf 64/32 erweitert. Die Umformung Bin-BCD braucht mehr Platz als die Division.
-
Thread
XOR-Verknüpfung 2er Zahlen
Zahlen müssen Ganzzahlen sein, sie müssen intern binär im Zweierkomplent dargestellt werden, nicht BCD und auch nicht als Zeichenstring, ... MfG Klaus
angegebenen Zahlen ausgegangen. Wer 9356, 2608 und 11964 flux auf dem Papier von dez zu bin umwandeln kann, ja der kann diese Aufgabe auf dem Papier lösen. ;-)
-
Thread
Binär nach BCD für Zahlen bis 32 Byte (AVR-GCC)
Um binäre Zahlen nach BCD umzuwandeln, gibt es den ADD3-Algorithmus, den ich in diesem Beispiel als Assemblerroutine für AVR-GCC implementiert habe. Damit kann man binäre Zahlen bis zu 32 Byte (also 256 Bit) in gepacktes BCD umwandeln. Dies verwende ich um mir Zahlen von Typ unsigned long long anzeigen zu lassen. Da unsigned long long anscheinend nicht so wirklich in GCC funktioniert (Rechnen scheint nicht zu klappen, zuweisen
-
Thread
Diskussion: Pi möglichst schnell berechnen
Beim Umwandeln hast du leider einen Denkfehler. Von Basis 16 auf Basis 10 benötigst du die vorhergehenden Stellen.
Frage schrieb im Beitrag #5808177: > BCD-Arithmetik wird ja nur im kaufmännischen Bereich verwendet. Und in Taschenrechnern. :-)