Old Fidelity - HiFi Klassiker Forum

Normale Version: Digitales Zählwerk ( nur Counter ) AKAI GX 620
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
line # 203

Code:
// Formatting the output.
sprintf(buffer, "%05ld", val);

-->

Code:
// Formatting the output.
sprintf(buffer, "%05ld", (0>val)?-val:val);

DIYLAB

(07.05.2020, 07:44)hyberman schrieb: [ -> ]AtDIYLAB: An welcher Stelle im Program kann man das Minus heraus nehmen und einfach nur vorwärst oder rückwärst zählen lassen? Geht das überhaupt?
Ich empfinde das Minus irgendwie als störend.

Moin,

gehen tut alles Thumbsup  .
Du sucht den Absolutwert, den Du mit abs() bekommst.
Die Methode zum Anzeigen auf dem Display:

Code:
/**
* Write OLED Display
*********************/
void WriteOled(unsigned long val) {
    // Buffer for all five digits.
    char buffer[5];

    // Formatting the output.
    sprintf(buffer, "%05ld", val);

    // Output on the display.
    oled.println(buffer);
}

ändern in:
Code:
/**
* Write OLED Display
*********************/
void WriteOled(long val) {
    // Buffer for all five digits.
    char buffer[5];

    // Formatting the output.
    sprintf(buffer, "%05ld", abs(val));

    // Output on the display.
    oled.println(buffer);
}

Aber den Sinn verstehe ich nicht.
Wenn ein positiver Zähler irgendwo in Bandmitte auf Null gesetzt wird und ich zurückspule, dann bekomme ich nun mal eine negative Zahl unter Null.
Nur weil mechanische Zähler das nicht können, muss es ja die Elektronik nicht nachmachen Denker

LG
(07.05.2020, 12:04)DIYLAB schrieb: [ -> ]Aber den Sinn verstehe ich nicht.
Wenn ein positiver Zähler irgendwo in Bandmitte auf Null gesetzt wird und ich zurückspule, dann bekomme ich nun mal eine negative Zahl unter Null.
Nur weil mechanische Zähler das nicht können, muss es ja die Elektronik nicht nachmachen  Denker

LG


Damit es authentischer bleibt zum analogen Display. Wenn man mitten im Band auf Null setzt und dann weiter zurück spult, dann zählt es halt ab 99999 rückwärts.
Empfinde ich persönlich als angenehmer. 

Werde das demnächst mal im Code umsetzen und testen.
(07.05.2020, 12:04)DIYLAB schrieb: [ -> ]abs()

Ah! Wusste nicht, dass irgendwo stdlib.h eingebunden ist. Wink3
Hat leider noch nicht so das gewünschte gebracht.

Das Minus ist zwar weg, zählt aber nun bis 00000 runter und fängt dann bei 00001 wieder an hoch zu zählen. Schöner wäre es, wenn 00000 auf 99999 umspringt und dann rückwärst also auf 99998 runter zählt. Oder nerve ich damit?

Ist das auch machbar?


[Bild: IMG-4034.jpg]
Code:
// Formatting the output.
sprintf(buffer, "%05ld", (0>val)?99999+val:val);
Bingo! Vielen Dank. So wollte ich das!


[Bild: IMG-4035.jpg]



Habe noch etwas den Kontrast vom OLED Display erhöht. Ist bei Verwendung von Farbfolien sicherlich vorteilhaft. Muss man dann austesten.
Hi, alles eingebaut, habe aber ein problem. . .

habe es in meinem thema erklärt !

DIYLAB

Ich denk mal, dass ich bis zum Wochenende die neue Version fertig habe.
Dann kann auch jeder in der Userconfig einstellen, ob er ein Minus haben möchte oder nicht.
Dauert alles ein bisshen länger, bin ja tagsüber im Homeoffice.
Die neuen Zeichensätze für die verschiedenen Zeichengrößen habe ich nun selbst gepixelt und sie sind noch ein bisschen besser zu lesen, als die orignalen Zeichen.

Bis den dann,
LG
Mal ne Frage an die Programmier-Profis hier...
Da der Nano mit dem Counter ja nicht ausgelastet ist wollte ich meine IR-Fernbedienung da "mit reinpacken". Von der Belegung kein Problem... nun habe ich schon mehrere Ansätze ausprobiert die beiden Sketche zusammenzuführen und schaffe es nicht da was lauffähiges hinzukriegen.
Hat jemand hier einen Tipp zu einer guten und nachvollziehbaren Beschreibung der Vorgehensweise... ich muss zugeben, dass meine Programmier-Bücher mit den sehr "trockenen" Formulierungen und meist ohne konkrete Praxis-Beispiele das nicht ganz leicht machen... zumindest für mich.
Gerne auch per PN um das hier nicht zuzumüllen.

viele Grüße
Andreas
Wenn wir jetzt noch beim Einschalten ein freundliches "Hallo" etc. mit ein programmieren könnten. :-)

Nur so als Späßle.
(07.05.2020, 14:04)DIYLAB schrieb: [ -> ]Ich denk mal, dass ich bis zum Wochenende die neue Version fertig habe.
Dann kann auch jeder in der Userconfig einstellen, ob er ein Minus haben möchte oder nicht.
Dauert alles ein bisshen länger, bin ja tagsüber im Homeoffice.
Die neuen Zeichensätze für die verschiedenen Zeichengrößen habe ich nun selbst gepixelt und sie sind noch ein bisschen besser zu lesen, als die orignalen Zeichen.

Bis den dann,
LG


Huhu Bruno,

gilt das Angebot noch die Ziffer zu vergrössern oder zu verkleinern?  Helligkeit wäre auch cool.

Ist nicht eilig wollte nur fragen.

Bin leider mit meinen Programmierkenntnissen noch nicht so weit Floet Kaffee

Hab vielen Dank Freunde

lG

Ingo

DIYLAB

(07.05.2020, 15:22)Rüsselfant schrieb: [ -> ]gilt das Angebot noch die Ziffer zu vergrössern oder zu verkleinern?  Helligkeit wäre auch cool.

Hallo Ingo,

3 verschiedene Größen sind in der neuen Version dann drin, deswegen schrieb ich doch, dass ich neue Zeichensätze gemacht habe.

Und Helligkeit?
Die ist von Anfang an drin in der USER CONFIG SECTION unter BRIGHTNESS  Denker

Oder möchtest Du das alles mit einem Taster einstellen?
Da wird man schnell durcheinanderkommen  LOL .

LG

(07.05.2020, 14:13)akguzzi schrieb: [ -> ]Da der Nano mit dem Counter ja nicht ausgelastet ist wollte ich meine IR-Fernbedienung da "mit reinpacken".

Hallo Andreas,

schwer zu beurteilen, da müsstest Du schon den Code zeigen Thumbsup .

LG
Ingo: 

Kontrast kannste schnell selber verändern, wie Bruno schon schrieb.

Code:
// Software configuration:
#define PULSESPERCOUNT    1    // Number of pulses for one count.
#define BRIGHTNESS        250    // Display brightness (0 to 255)


Ich habe hier mal 250 eingetragen.
(07.05.2020, 16:12)hyberman schrieb: [ -> ]Ingo: 

Kontrast kannste schnell selber verändern, wie Bruno schon schrieb.

Code:
// Software configuration:
#define PULSESPERCOUNT    1    // Number of pulses for one count.
#define BRIGHTNESS        250    // Display brightness (0 to 255)


Ich habe hier mal 250 eingetragen.
Cool Andre, danke.

hast di 250 einhestellt wegen der Folie, oder Ohne Folie?
Nee, erst mal nur so verändert. Ich habe noch keine Farbfolien.
Hmm,

habe den Wert von 128 auf 250 hochgesetzt und bin auf "hochladen" gegangen.

Habe lediglich den Wert ausgetauscht. Auf Andre's Screenshot sieht der Wert 250 nach rechts verschoben aus.

Folgender Fehler:

Arduino: 1.8.12 (Windows 10), Board: "Arduino Uno"

Der Sketch verwendet 7266 Bytes (22%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 142 Bytes (6%) des dynamischen Speichers, 1906 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload.
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xa6
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xa6

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.
Falsches Board ausgewählt! Du hast einen Nano.
Hast du vorher den Sketch überprüfen lassen vor dem hochladen?

Ich habe keinen Sreenshot gemacht, sondern die Code Zeile hier eingefügt. Das sind zwei paar Schuhe.
Ääch,
ich müsste nochmal die COM wechseln.

Ich passe es nochmal an....aber erst morgen. Oldie

Hab schon ein Glas Rotwein an Hals und schaue im Ersten den Zürich Krimi.

Wisste Bescheid Raucher

LG und bis Morgen

Ingo
Vielleicht sollten wir mit dem Kontrast vom OLED Display doch etwas vorsichtiger umgehen. Ich bekam den Tip, sich von den OLED Displays (muss baugleich sein, auch von den Abmassen) eins als Ersatz hinzulegen. Die können schon nach zwei Jahren wesentlich schwächer werden.

DIYLAB

André, guck mal in die kommende USER CONFIG - extra für dich Lol1 .

[Bild: config.png]

PS: Bitte an PULSES_SECOND keinen Anstoß nehmen, diesen Abschnitt mach ich erst richtig komplett, wenn meine BM hier ist.

DIYLAB

(07.05.2020, 13:18)hyberman schrieb: [ -> ]Schöner wäre es, wenn 00000 auf 99999 umspringt und dann rückwärst also auf 99998 runter zählt.

(07.05.2020, 13:37)winix schrieb: [ -> ]
Code:
// Formatting the output.
sprintf(buffer, "%05ld", (0>val)?99999+val:val);

Ich denke mal, da hat sich noch ein kleines Fehlerteufelchen eingeschlichen, denn im oben zu sehenden Code würde er so rückwärts zählen:

00001
00000
99998

So sollte es klappen:

Code:
// Formatting the output.
sprintf(buffer, "%05ld", (0>=val)?99999+val:val);
stimmt! für's Minuszeichen war es egal. Thumbsup
Bruno! Sehr nice!!

Setze ich morgen gleich mal um.

DIYLAB

(07.05.2020, 22:44)hyberman schrieb: [ -> ]Setze ich morgen gleich mal um.

Ömm, du meinst die Sache mit dem Vorzeichen?
Denn die UserConfig ist ja nur ein Auszug aus der neuen Software, die da erst kommt ...

Jute Nacht Jungs Winke
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21