Hallo, ich habe eine Nixie Uhr mit vier Ziffern, angesteuert von MPSA42 Transistoren mit CD4028 BCD zu Dezimal Decodern gebaut. Die Zeit wird von einem Arduino Mega vorgegeben. Zu meiner Frage: Wie programmiere ich in der Arduino IDE die umrechnung von Dezimalzahlen in Binärcode (den ich dann in die CD4028 füttern kann)? Geteilt durch 2 mit Rest geht ja nicht, da ich nicht mit Rest rechnen/programmieren kann. LG :)
Luis F. schrieb: > Hallo, > > ich habe eine Nixie Uhr mit vier Ziffern, angesteuert von MPSA42 > Transistoren mit CD4028 BCD zu Dezimal Decodern gebaut. Die Zeit wird > von einem Arduino Mega vorgegeben. > > Zu meiner Frage: Wie programmiere ich in der Arduino IDE die umrechnung > von Dezimalzahlen in Binärcode (den ich dann in die CD4028 füttern > kann)? Genauer gesagt, musst Du eine binär codierte Ganzzahl (integer) in eine binär codierte Dezimalzahl (BCD) umrechnen. Ist Dir klar, wie jeweils ein Integer und ein BCD kodiert ist? Es scheint mir so zu sein, da Du nachfolgend ganz richtig eine Modulo-Division erwähnst. > Geteilt durch 2 mit Rest geht ja nicht, da ich nicht mit Rest > rechnen/programmieren kann. Den Satz kann ich nicht recht deuten. Bedeutet er, dass Du das mangels Kenntnis der Wirkung einer Modulo-Division nicht kannst oder dass Du davon ausgehst, das es kein Sprachmittel, keinen Operator gibt, mit dem das möglich ist? Letzteres trifft nicht zu, soweit ich weiß. Siehe hier: https://www.arduino.cc/en/Reference/Modulo
Danke für deine Antwort Theor! Theor schrieb: > Ist Dir klar, wie jeweils > ein Integer und ein BCD kodiert ist? Was ein Integer ist, weiß icht nicht. Wie BCD kodiert ist, und was das ist weiß ich. Allerdings bin ich quasi noch Anfänger beim Programmieren. Theor schrieb: >> Geteilt durch 2 mit Rest geht ja nicht, da ich nicht mit Rest >> rechnen/programmieren kann. > > Den Satz kann ich nicht recht deuten. Damit meine ich, die Art Dezimal in Binär umzurechnen, wie sie mir in der Schule im IT Unterricht beigebracht wurde. Dezimal: 5 : 2 = 2 Rest 1 2 : 2 = 1 Rest 0 1 : 2 = 0 Rest 1 Binär : 101 (Den Rest von oben nach unten gelesen) Von einer Modulo-Division wusste ich bis jetzt noch nichts, aber diese ist ja auch nicht fähig einen Rest auszuspucken, richtig? Oder verstehe ich da etwas falsch? Ich brauche ein Stück Code, dem ich eine Zweistellige Zahl zur verfügung stelle, und der mir dann die entsprechenden (vorher definierten) Pins am Arduino High setzt.
Modulo ist genau der Rest-Operator, den Du suchst. int a,b; a = 5 / 2; // a ist 2. b = 5 % 2; // b ist 1.
Luis F. schrieb: > Danke für deine Antwort Theor! Bitteschön. Gerne. > Was ein Integer ist, weiß icht nicht. Wie BCD kodiert ist, und was das > ist weiß ich. Allerdings bin ich quasi noch Anfänger beim Programmieren. OK. Kein Problem. > Theor schrieb: >>> Geteilt durch 2 mit Rest geht ja nicht, da ich nicht mit Rest >>> rechnen/programmieren kann. >> >> Den Satz kann ich nicht recht deuten. > > Damit meine ich, die Art Dezimal in Binär umzurechnen, ... Hm. Ich habe erklärt, was mir an dem Satz unklar war. Es ging nicht um das Objekt sondern um das Subjekt - nämlich, dass Du etwas nicht kannst und ob "Können" hier die Fähigkeit etwas Bekanntes anzuwenden oder das Unbekannt-Sein betraf. Aber gut. Das wird aufgrund des Folgenden klar. > Von einer Modulo-Division wusste ich bis jetzt noch nichts, aber diese > ist ja auch nicht fähig einen Rest auszuspucken, richtig? Oder verstehe > ich da etwas falsch? Naja. Dummerweise habe ich mich da eher "Programmierer-Umgangssprachlich" ausgedrückt. Allerdings hat der nachfolgende Link, die Sache eigentlich eindeutig gemacht: https://www.arduino.cc/en/Reference/Modulo Dort ist genau erklärt, was der Modulo-Operator tut. Reicht das für Dich so?
Luis F. schrieb: > Von einer Modulo-Division wusste ich bis jetzt noch nichts, aber diese > ist ja auch nicht fähig einen Rest auszuspucken, richtig? Es gibt in C auch kein Modulo-Division, da hast du recht. Aber es gibt eine Divisions-Operation für Ganzzahlen und eine Modulo-Operation. Du kannst aber die Division ausführen und dann das mit 10 multipliziert Ergebnis von der Originalzahl abziehen. Oder wenn es um die Umwandlung von einem Byte in 2 BCD-Nibble geht, kannst du auch in einer kleinen Schleife durch Subtraktion und Mitzählen umwandeln, bist der Wert kleiner als 10 ist. Beispiel: Enthalte dein Bye die Dezimalzahl 35 (0x23). Dann kannst du drei mal 10 (0x0A) abziehen, bis du bei einer Zahl kleiner 10, nämlich 5 landest. Die Anzahl der Subtraktionen (3) wird dein High-Nibble und der Rest (5) dein Low-Nibble für die Ausgabe.
Carl D. schrieb: > https://en.m.wikipedia.org/wiki/Double_dabble Danke, interessanter Artikel, ist aber ganz schön Komplex. Die Arduino IDE Sprache ist doch vereinfachtes C, also kann ich ja mal versuchen das Beispiel zu übersetzen. Andreas R. schrieb: > Modulo ist genau der Rest-Operator, den Du suchst. > > int a,b; > > a = 5 / 2; // a ist 2. > b = 5 % 2; // b ist 1. Stimmt, es war wohl schon zu spät gestern :) . Ich hatte Modulo so verstanden, das es eine normale geteilt Operation ist, die einfach den Rest vernachlässigt und nur ganze Zahlen ausspuckt. Ist aber natürlich quatsch. Danke für das Beispiel. Theor schrieb: > Naja. Dummerweise habe ich mich da eher > "Programmierer-Umgangssprachlich" ausgedrückt. > Allerdings hat der nachfolgende Link, die Sache eigentlich eindeutig > gemacht: https://www.arduino.cc/en/Reference/Modulo > Dort ist genau erklärt, was der Modulo-Operator tut. Ja, habe ich jetzt, wie oben beschrieben, verstanden. Modulo ist genau das was ich gesucht habe. Wolfgang schrieb: > Enthalte dein Bye die Dezimalzahl 35 (0x23). Dann kannst du > drei mal 10 (0x0A) abziehen, bis du bei einer Zahl kleiner 10, nämlich 5 > landest. Die Anzahl der Subtraktionen (3) wird dein High-Nibble und der > Rest (5) dein Low-Nibble für die Ausgabe. Danke Wolfgang, ich werde dein Beispiel auch mal Ausprobieren. Ansonsten: int a,b; a = 5 / 2; // a ist 2. ->Quotient (ganze Zahl) b = 5 % 2; // b ist 1. ->Rest
Luis F. schrieb: > Wie programmiere ich in der Arduino IDE die umrechnung > von Dezimalzahlen in Binärcode (den ich dann in die CD4028 füttern > kann)? Überhaupt nicht. Wo hast du denn deine Dezimalzahlen her? Du hast doch wohl gar keine. Stattdessen hast du vermutlich ne Integer-Zahl von 0 bis 9999 und willst selbige in einzelne Ziffern umcodieren. Also von int Zeit; nach char Ausgabe[4];// BCD, also nur Bits 0..3 in Benutzung Richtig geraten? Jetzt belies dich mal über arithmetische Rechenoperationen mit Integerzahlen. Insbesondere über die Division. Was passiert also, wenn du deine Zahl durch 10 teilst? Ja, du kriegst 1/10 der Zahl dabei heraus - und zugleich auch noch den Rest. Der entspricht deiner hintersten Stelle. Wenn du nun das Ergebnis wiederum duch 10 teilst, kriegst du wiederum 1/10 davon raus und schon wieder einen Rest, der deiner vorletzten Stelle entspricht. Und so weiter. Klaro? beim ARM geht das etwa so: #include <math.h> ldiv_t T; long L; T = ldiv(L,10); ziffer = T.rem; L = T.quot; aber ob das auch bei deiner HW geht, mußt du selber herausfinden. W.S.
W.S. schrieb: > Luis F. schrieb: >> Wie programmiere ich in der Arduino IDE die umrechnung >> von Dezimalzahlen in Binärcode (den ich dann in die CD4028 füttern >> kann)? > > Überhaupt nicht. Wo hast du denn deine Dezimalzahlen her? Du hast doch > wohl gar keine. Stattdessen hast du vermutlich ne Integer-Zahl von 0 > bis 9999 und willst selbige in einzelne Ziffern umcodieren. > Also von > int Zeit; > nach > char Ausgabe[4];// BCD, also nur Bits 0..3 in Benutzung > > Richtig geraten? Ich habe eine Schaltung, die mithilfe von einem Quarz ein Signal mit genau 1Hz erzeugt. Dieses wird vom Arduino gezählt (drei Variablen, Sekunden, Minuten, Stunden) Das ist mir Dezimalzahlen gemeint, daher habe ich diese. Beispiel: Stunden=24 Nach jedem Impuls des 1Hz Signals, wird zuerst die Zeit weiter gezählt, und danach soll Anhand der Variablen (Stunde, Minute) Pins auf High gezogen werden. Gegeben (beispiel): Sekunden=53 ; Minuten=39 ; Stunden=12 Stunde : Minute BCD Tabelle: [A] [B] [C] [D] [A] [B] [C] [D] : [A] [B] [C] [D] [A] [B] [C] [D] 1 2 4 8 1 2 4 8 1 2 4 8 1 2 4 8 Pin Level (dass muss herausgefunden werden): 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 Anzeige: 1 2 : 3 9 Den Rest deines Posts verstehe ich nicht, bin wie gesagt noch Anfänger. Hätte nicht gedacht das dass so kompliziert ist. Danke für deinen Beitrag.
Luis F. schrieb: > Das ist mir Dezimalzahlen gemeint, daher > habe ich diese. Aha - und wie denn nun genau zählt dieser Arduino diese Pulse? Macht er das mit Gleitkomma oder womit denn sonst? Nen Abakus hat er ja wohl nicht zur Hand. Ich frag dich ja schon garnicht, warum der besagte Arduino überhaupr diese ominöse Schaltung braucht, wo deine 1 Hz Impulse herauskommen, denn normalerweise kann eigentlich jeder Mikrocontroller sich intern sowas aus dem eigenen Takt herleiten. Und es ist überhaupt nicht kompliziert, aber so ganz ohne jegliche eigene Einarbeitung geht es nicht. Das Fahrradfahren hast du ja auch erstmal lernen müssen und bist anfangs möglicherweise erstmal in die nächste Hecke gerammelt. Und jetzt geht es intuitiv. So ist das auch mit unseren Themen hier. W.S.
äh.. nochwas: "mithilfe eines Quarzes" oder der Dativ ist dem Genitiv sein Tod...
Luis F. schrieb: > Dieses wird vom Arduino gezählt (drei Variablen, > Sekunden, Minuten, Stunden) Vorschlag: mach das doch einfach mit 6 Variablen, also je eine für jede Dezimalstelle, dann brauchst Du gar nichts mehr zu konvertieren.
W.S. schrieb: > Aha - und wie denn nun genau zählt dieser Arduino diese Pulse? > Macht er das mit Gleitkomma oder womit denn sonst? Nen Abakus hat er ja > wohl nicht zur Hand. Der 1Hz Pin ist als Interrupt definiert. Wenn das Signal dort High geht, wir die Sekunden Variabel hoch gezählt. Damit das genauer ist. Der Arduino Standartquarz ist extrem ungenau. Ist glaub ich auch gar kein Quarz sondern irgendwas anderes, billigeres. W.S. schrieb: > Und es ist überhaupt nicht kompliziert, aber so ganz ohne jegliche > eigene Einarbeitung geht es nicht. Das Fahrradfahren hast du ja auch > erstmal lernen müssen und bist anfangs möglicherweise erstmal in die > nächste Hecke gerammelt. Und jetzt geht es intuitiv. So ist das auch mit > unseren Themen hier. Naja, ich dachte es gibt einen einfachen Befehl um Dezimalzahlen in Binär umzuwandeln. Comupter (Mikrocontroller) arbeiten ja mit dem Binärsystem? Sagt man ja so. Da dachte ich es gibt einen einfachen Befehl. Thomas E. schrieb: > Vorschlag: mach das doch einfach mit 6 Variablen, also je eine für jede > Dezimalstelle, dann brauchst Du gar nichts mehr zu konvertieren. Danke für den Vorschlag, ich zähle die Zeit einfach gleich in BCD. Isr wahrscheinlich einfacher so, und ein Schritt fällt weg.
Luis F. schrieb: > Naja, ich dachte es gibt einen einfachen Befehl um Dezimalzahlen in > Binär umzuwandeln. Du bist eigentlich mit der Division mit Rest so nahe an der Lösung, dass es sich lohnt einen kleinen Schritt weiter zu gehen. Das Prinzip ist fast das selbe, wie bei der Umrechnung von Zahlen aus einer Basis in eine andere Basis. Es geht darum eine Zahl in "kleinere Teile" zu teilen. Nimm folgendes: Wie Basis-Umrechng. %-Operator 0 : 10 = 0 Rest 0 % 10 = 0 2 : 10 = 0 Rest 2 % 10 = 2 5 : 10 = 0 Rest 5 % 10 = 5 10 : 10 = 1 Rest 0 % 10 = 0 12 : 10 = 1 Rest 2 % 10 = 2 15 : 10 = 1 Rest 5 % 10 = 5 20 : 10 = 2 Rest 0 % 10 = 0 22 : 10 = 2 Rest 2 % 10 = 2 25 : 10 = 2 Rest 5 % 10 = 5
Luis F. schrieb: > Der 1Hz Pin ist als Interrupt definiert. Wenn das Signal dort High geht, > wir die Sekunden Variabel hoch gezählt. Im Dezimalsystem?
Luis F. schrieb: > Damit das genauer ist. Der Arduino Standartquarz ist extrem ungenau. Ist > glaub ich auch gar kein Quarz sondern irgendwas anderes, billigeres. Die Sache mit der Genauigkeit kann man lernen. Beim Quarz kommt es nur drauf an, dass er stabil ist. Beitrag "Die genaue Sekunde / RTC" p.s. Was das allerdings mit Stand-Kunst Quarzen zu tun hat, ist mir schleierhaft.
Er meint vmtl. Arduino mit Resonator oder RC, die gehen nach der Temperatur.
Theor schrieb: > Du bist eigentlich mit der Division mit Rest so nahe an der Lösung, dass > es sich lohnt einen kleinen Schritt weiter zu gehen. Das Prinzip ist > fast das selbe, wie bei der Umrechnung von Zahlen aus einer Basis in > eine andere Basis. Es geht darum eine Zahl in "kleinere Teile" zu > teilen. Ich werde aus deinem Beitrag nicht schlau. Wie Modulo funktioniert weiß ich mittlerweile. Warum verwendest du bei jedem beispiel :10 (bzw. %10)? batman schrieb: > Im Dezimalsystem? Ja. Ich überlege gerade ob es einfacher ist, direkt in BCD zu zählen. Wolfgang schrieb: > Die Sache mit der Genauigkeit kann man lernen. Beim Quarz kommt es nur > drauf an, dass er stabil ist. > Beitrag "Die genaue Sekunde / RTC" Der Quarz im Arduino ist nur so ein kleines Ding, was meines Wissens nach nicht genau genug für eine Uhr ist. Außerdem ist die Arduino IDE noch ein Problem, da da soviel im Hintergrund läuft kann man schlecht eine Uhr programmieren (Habe ich zumindest gelesen). Der Arduino hat ca. 5000ppm abweichung (Ist das viel?). Eine andere Idee wäre, einen BCD Zähler zu verwenden ( CD4520 habe ich noch hier liegen). So spare ich Pins am uC und ich muss die Umrechnung in BCD nicht machen. Ein Nachteil davon ist, das man beim Zahlen wechseln die Ziffern durchlaufen sehen kann.
Luis F. schrieb: > Außerdem ist die Arduino IDE noch ein Problem, da da soviel > im Hintergrund läuft kann man schlecht eine Uhr programmieren > (Habe ich zumindest gelesen). Das ist Unfug. Eine Uhr würde man nie so programmieren, dass sie davon abhängig ist. Das überläßt man einem Timer. > Der Arduino hat ca. 5000ppm abweichung (Ist das viel?). Für eine Uhr ist das egal. Bei einem Uhrpendel ist die größe des Baumes, aus dem das Pendel geschnitzt wird, auch ziemlich unkritisch. Solange die Abweichung (wovon eigentlich) konstant ist, kümmert man sich einfach nicht um den Wert, sondern rechnet mit dem tatsächlichen Wert. Und wieviel 5000ppm ist, hängt absolut betrachtet von der Frequenz ab. https://de.wikipedia.org/wiki/Parts_per_million
> Vorschlag: mach das doch einfach mit 6 Variablen, also je eine für > jede Dezimalstelle, dann brauchst Du gar nichts mehr zu konvertieren. uint8_t s0,s1,m0,m1,h0,h1; if(++s0>9){s0=0; if(++s1>5){s1=0; if(++m0>9){m0=0; if(++m1>5){m1=0; if(++h0>9){h0=0;h1++;}else if(h0==4 && h1==2)h0=h1=0; }}}} > Der 1Hz Pin ist als Interrupt definiert. > Wenn das Signal dort High geht, wir die Sekunden Variabel hoch gezählt. > Damit das genauer ist. Der Arduino Standartquarz ist extrem ungenau. > Ist glaub ich auch gar kein Quarz sondern irgendwas anderes, billigeres. wir -->wird Standart ("Stand-Kunst") --> Standard Sekunden Variabel --> Sekunden-Variable Statt des externen Interrupts kannst Du auch einen Timer den Interrupt generieren lassen. Alle Arduinos, die ich bisher zu Gesicht bekam, hatten einen Quarz. Nur kann man nicht davon ausgehen, dass die mit exakt der aufgedruckten Frequenz schwingen. Man muss also wie bei jeder Uhr abgleichen, indem man die Teilfaktor anpasst, wie in "die genaue Sekunde" beschrieben. Da der häufig verwendete Atmega328 einen Temperatursensor eingebaut hat, kann man diesen zum Kompensieren des Frequenzganges mit einbeziehen.
eProfi schrieb: > uint8_t s0,s1,m0,m1,h0,h1; > if(++s0>9){s0=0; > if(++s1>5){s1=0; > if(++m0>9){m0=0; > if(++m1>5){m1=0; > if(++h0>9){h0=0;h1++;}else > if(h0==4 && h1==2)h0=h1=0; > }}}} Quelltext wird nicht nach Zeilenzahl in Rechnung gestellt - ich fänd's so etwas übersichtlicher:
1 | uint8_t s0,s1,m0,m1,h0,h1; |
2 | if(++s0>9) |
3 | {
|
4 | s0=0; |
5 | if(++s1>5) |
6 | {
|
7 | s1=0; |
8 | if(++m0>9) |
9 | {
|
10 | m0=0; |
11 | if(++m1>5) |
12 | {
|
13 | m1=0; |
14 | if(++h0>9) |
15 | {
|
16 | h0=0; |
17 | h1++; |
18 | }
|
19 | else
|
20 | {
|
21 | if(h0==4 && h1==2) |
22 | h0=h1=0; |
23 | }
|
24 | }
|
25 | }
|
26 | }
|
27 | }
|
Wolfgang schrieb: > Das überläßt man einem Timer. Verstehe, leider habe ich keine Ahnung wie man Timer benutzt. Das ist erst mein zweites Projekt mit Mikrocontrollern, und die 1Hz Schaltung habe ich eingebaut, weil ich das so für mich einfacher Programmieren kann. Danke für den Hinweis zu ppm, hab ich jetzt verstanden :) . eProfi, Thomas Elger: Danke für den Code. Dieser zählt ja ganz normal im Zehnersystem, oder verstehe ich da etwas falsch? Welchen Vorteil bringt mir diese Art die Sekunden zu zählen? Danke für eure Hilfe!
Luis F. schrieb: > Welchen Vorteil bringt > mir diese Art die Sekunden zu zählen? Dachte, das wäre eh klar? Damit brauchst Du nix umzurechnen, die einzelnen Digits kannst Du direkt an Deinen Pins an die Nixie-Dekoder ausgeben. Dafür ist die Zählroutine halt ein wenig größer. Eine Alternative wäre evtl. noch eine "incBCD()"-Funktion, die eine 8-Bit Zahl als zwei BCD-Digits verarbeitet:
1 | uint8_t sekunden, minuten, stunden; |
2 | |
3 | uint8_t incBCD(uint8_t zahl) |
4 | {
|
5 | ++zahl; |
6 | if((zahl & 0x0F) > 9) |
7 | zahl += 6; |
8 | }
|
9 | |
10 | void incZeit (void) |
11 | {
|
12 | sekunden = incBCD(sekunden); |
13 | if(sekunden > 0x59) |
14 | {
|
15 | sekunden = 0; |
16 | minuten = incBCD(minuten); |
17 | if(minuten > 0x59) |
18 | {
|
19 | minuten = 0; |
20 | stunden = incBCD(stunden); |
21 | if(stunden > 0x23) |
22 | stunden = 0; |
23 | }
|
24 | }
|
25 | }
|
:
Bearbeitet durch User
Wenn ich den Code ausprobiere sehe ich im Seriellen Monitor nur Nullen. Durch das ++S0 in " if(++s0>9)" sollte doch aber aufwärts gezählt werden? Irgendwas mache ich falsch. Hier mein Test-Code: void setup() { Serial.begin(9600); } void loop() { delay(1000); uint8_t s0,s1,m0,m1,h0,h1; if(++s0>9) { s0=0; if(++s1>5) { s1=0; if(++m0>9) { m0=0; if(++m1>5) { m1=0; if(++h0>9) { h0=0; h1++; } else { if(h0==4 && h1==2) h0=h1=0; } } } } } Serial.print(s0); Serial.print(" / "); }
Du musst die Variablen global (ganz am Anfang schreiben) oder static machen.
Wenn ich sie ganz am Anfang im im Setup definiere bekomme ich die Fehlermeldung " 's0' was not declared in this scope "
noch vor dem Setup, oder schreibe im Loop static uint8_t s0....
Nachteil, wenn man sie static macht: man muss sie explizit auf Null setzen. static uint8_t s0=0,s1=0,m0=0,m1=0,h0=0,h1=0;
eProfi schrieb: > Nachteil, wenn man sie static macht: > man muss sie explizit auf Null setzen. > > static uint8_t s0=0,s1=0,m0=0,m1=0,h0=0,h1=0; Das kann die Laufzeitumgebung selbst. Alle nicht expliziet initialisierten global oder static definierten Variablen, werden Enfachst Reset mit 0 initialisiert.
Danke für den Beispiel Code, jetzt funktioniert er bei mir auch. Thomas E. schrieb: > Eine Alternative wäre evtl. noch eine "incBCD()"-Funktion, die eine > 8-Bit Zahl als zwei BCD-Digits verarbeitet: Die "incBCD()"-Funktion scheint in der Arduino IDE nicht zu funktionieren bzw. zu existieren. Wenn ich versuche das Sketch hochzuladen, gibt es einen Fehler beim Kompilieren.
Luis F. schrieb: > Die "incBCD()"-Funktion scheint in der Arduino IDE nicht zu > funktionieren bzw. zu existieren. Wenn ich versuche das Sketch > hochzuladen, gibt es einen Fehler beim Kompilieren. Wundert mich micht, daß die Funktion in der Arduino-IDE nicht existiert - der Dreizeiler ist meine Spontan-"Erfindung". Ansonsten kann ich Dir bei Arduino und deren "Witzen" (sorry, ich denke bei dem Wort "Sketch" halt immer eher an Dieter Hallervorden, als an irgendwas im Zusammenhang mit Mikrocontrollern) leider nicht weiterhelfen - da habe ich keine Ahnung von. Aber vielleicht könnte man auch ohne Arduino-Kenntnisse weiterhelfen, wenn man den Wortlaut der Fehlermeldung kennen würde? Edit: Ah, ich sehe schon - sorry, mein Fehler, habe die 4. Zeile vergessen, die da lauten muss:
1 | return zahl; |
:
Bearbeitet durch User
Thomas E. schrieb: > Wundert mich micht, daß die Funktion in der Arduino-IDE nicht existiert > - der Dreizeiler ist meine Spontan-"Erfindung". Ansonsten kann ich Dir > bei Arduino und deren "Witzen" (sorry, ich denke bei dem Wort "Sketch" > halt immer eher an Dieter Hallervorden, als an irgendwas im Zusammenhang > mit Mikrocontrollern) leider nicht weiterhelfen - da habe ich keine > Ahnung von. Aber vielleicht könnte man auch ohne Arduino-Kenntnisse > weiterhelfen, wenn man den Wortlaut der Fehlermeldung kennen würde? Ja, die Arduino-IDE ist recht eichfach gehalten, vieles fehlt da anscheinend einfach. Die Fehlermeldung lautet: undefined reference to `incBCD(unsigned char)' collect2.exe: error: ld returned 1 exit status exit status 1 Fehler beim Kompilieren für das Board Arduino/Genuino Uno. Aber mit dem ersten Code Beispiel haben eProfi und du mir schon sehr weitergeholfen. Damit, und mit der Modulo-Operation komme ich schon weiter. Vielen Dank für eure Hilfe!
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.