Forum: Mikrocontroller und Digitale Elektronik Immer diese Timer! Versuch einer Excel-/Numbers Tabelle - brauche bitte Mathe kontrolle


von Peter S. (petershaw)


Angehängte Dateien:

Lesenswert?

Hallo ihr lieben,

ich möchte den Timer vom AVR nutzen um Reihen (Led-Matrix) weiter zu 
schalten. Ich will verschiedene Konfigurationen vorher durchrechnen und 
mir die Einstellungen für den 8-Bit oder 16-Bit Timer vorher 
ausrechnen/ansehen.

Natürlich hab ich beim Rechnen wieder Probleme :-)

Mein Versuch ist eine Numbers-Tabelle zu erstellen in der ich die Mhz 
des µC's einstelle, die Grund-Wiederholungsrate, die Zeilen und die 
gewünschten Dimmstufen. (A, B, C und F). Alles andere soll er mir 
ausrechnen und passende INT-Werte hervorheben.

Anbei mal ein PDF und die Tabelle. Hier ist der Link zum iCloud Dokument 
(für Windows-Nutzer): 
https://www.icloud.com/iw/#numbers/BAIQZwoW34gDmznlE1yBbtR6_9x56cfOKteE/Schaltzeiten.numbers
(In iCloud gehen die Hervorhebungen nicht - ich werde es mal als Excel 
exportieren, mal sehen ob das auch klappt....)

In blau sind Informationen, grün sind die benötigten Schritte die der 
Counter zurücklegen muss, bevor eine Zeile weitergeschaltet werden muss, 
rot sind die nötigen Overflows bei 8 bit und orange die Overflows bei 16 
bit.

Erste Frage dazu: Stimmt das so? Kann da eventuell jemand über die 
Zahlen und Formeln schauen und mein Zweifel beseitigen.

Zweite Frage. Den Overflow kann ich durch ein setzen des Startwertes 
noch beeinflussen, richtig? Wie würde ich das als Spalte noch einfügen 
um mit der Zahl herumzuspielen um die Werte für meine Anwendung noch 
etwas fine-zu-tunen?

Danke euch.
ps

: Bearbeitet durch User
von Peter S. (petershaw)


Angehängte Dateien:

Lesenswert?

Anbei noch der Excel-Export.

Und nochmals Danke im Voraus.

von Peter D. (peda)


Lesenswert?

Warum so kompliziert?

Schreib einfach die Formeln und Konstanten per #define hin und laß dann 
alles den Compiler ausrechnen.
Ich mach das immer so.


Wo hast Du denn den 10m breiten Bildschirm her?
Ich kann auf meinem nichts erkennen.

: Bearbeitet durch User
von Peter S. (petershaw)


Lesenswert?

Hehe, sorry, ich hab 3 nebeneinander. :-)
Ja rechen lassen ist gut, aber ich will vorher Design-Entscheidungen 
treffen können und mit den Werten "herumspielen"

von Amateur (Gast)


Lesenswert?

Du kannst die Formeln fast 1:1 aus dem Datenblatt in ein Excel-Formular 
übernehmen.
Letztere sind doch wirklich nicht so kompliziert.
Ein bisschen Exceln sollte man aber schon können.

Die Software ist deshalb bei Firmen so beliebt, weil die Mitarbeiter 
praktisch keine Schulung benötigen.

Auch die Kollegen aus der Freeware-Scene, haben damit keine Probleme.

von Peter S. (petershaw)


Lesenswert?

Ja. Das ist alles sehr valide.
Beantwortet nur null meine Frage. Also, ich hab mich vielleicht 
missverständlich ausgedrückt, ich will nicht wissen wie ich die Spalte 
einfüge, sondern wie ich die Rechnung hinten (grün und orange) von dem 
Wert noch abhängig mache (rechnerisch).

Punkt ist doch: ich hab verschiedene mögliche Konfigurationen. Ich will 
die alle eintragen können und mit den Werten so spielen, das ich sie mir 
optieren kann und dann die Werte nur in mein Code setzen muss am 
Schluss.
Die verschiednen Einstellungen am Timer will ich doch aber vorher sehen. 
Die Numbers ist dafür da um alle in einer Zeile untereinander zu haben. 
Ich muss in der Software einiges Berücksichtigen und will pro's und 
con's gegenüberstellen. Bzw Mögliche Konfigurationen durch verschieben 
und anpassen der 4 Eingangswerte untereinander sehen.
Format ist so, weil ich bei vielen Zeilen so genaue Übersicht habe und 
frei hinzufügen und wegnehmen kann.

Verstehe euern Lösungsversuch oder euer Argument nicht. Ich glaube mit 
Formeln oder Numbers als Applikation hab ich nun wirklich keine 
Probleme. Mit dem in dem µC rechnen ist ein Super Ansatz, hilft mir aber 
bei der Übersicht auch nicht.

Ich hoffe ich konnte mein Anliegen deutlich machen.
A) Wer Lust hat bitte mal prüfen, ob ich die Formeln richtig eingesetzt 
habe
B) Ideen zu einer neuen Spalte um die Fähigkeiten des Timers noch mehr 
nutzen zu können. Max-Wert?- CPM?)

Das währe wirklich lieb, wenn keine Lust dann hab ich Pech :-)

von 6A66 (Gast)


Lesenswert?

Peter Shaw schrieb:
> Ich hoffe ich konnte mein Anliegen deutlich machen.

Nein

Peter Shaw schrieb:
> sondern wie ich die Rechnung hinten (grün und orange) von dem
> Wert noch abhängig mache (rechnerisch).

Welche Berechnung?
Von welchem Wert?

Peter Shaw schrieb:
> ich hab verschiedene mögliche Konfigurationen. Ich will
> die alle eintragen können und mit den Werten so spielen, das ich sie mir
> optieren

Dann trag diese ein und spiele, und optimiere.
Aber ich kann noch nicht erkennen was Du möchtest.

Peter Shaw schrieb:
> Zweite Frage. Den Overflow kann ich durch ein setzen des Startwertes
> noch beeinflussen, richtig? Wie würde ich das als Spalte noch einfügen
> um mit der Zahl herumzuspielen um die Werte für meine Anwendung noch
> etwas fine-zu-tunen?

Wenn es das ist was Du möchtest dann fügen an der Stelle die Dir genehm 
erscheint (vorne, Mitte, Hinten) die Spalte ein. Dei Berechnung des 
Wertes musst Du dann selbst vornehmen.

Oder möchtest Du dass wir für Dich das Excel-Sheet und dessen Formeln 
auf Validität prüfen und für Dich die neuen Formeln eintragen?

rgds

von Peter D. (peda)


Lesenswert?

Peter Shaw schrieb:
> Ich will
> die alle eintragen können und mit den Werten so spielen

Was und warum willst Du denn da spielen?

Du hast eine F_CPU und Du hast ein gewünschtes Timerintervall.
Dann mußt Du erstmal feststellen, welchen Prescaler Du verwenden kannst.
Z.B. F_CPU = 10MHz, Intervall = 100ms:
10e6 * 100e-3 / 65536 = 15
Der nächste Prescaler ist dann 64.
Das Ausrechnen des Prescalers kann man auch über ein Macro machen 
lassen.

Und dann nur noch hinschreiben:
1
#define F_CPU 10e6   // 10MHz
2
#define TIME  100e-3 // 100ms
3
#define PRESCALE 64
4
5
OCR1A = (uint32_t)(F_CPU / PRESCALE * TIME - 0.5);

von Karl H. (kbuchegg)


Lesenswert?

Peter Dannegger schrieb:
> Peter Shaw schrieb:
>> Ich will
>> die alle eintragen können und mit den Werten so spielen
>
> Was und warum willst Du denn da spielen?
>
> Du hast eine F_CPU und Du hast ein gewünschtes Timerintervall.
> Dann mußt Du erstmal feststellen, welchen Prescaler Du verwenden kannst.
> Z.B. F_CPU = 10MHz, Intervall = 100ms:

Und das Intervall ergibt sich beim TO aus der gewünschten 
Bildwiederholfrequenz, der Anzahl der Zeilen und der Anzahl der 
Graustufen.
Der Rest ist Dreisatz:
Wenn in einer Sekunde die Matrix 50 mal neu aufgebaut werden soll, 8 
Zeilen hat und für jede LED 8 Graustufen vorgesehen sind, dann muss alle
1/50 /8 /8 = 0.0003125 Sekunden die nächste Zeile auf die Matrix.

Mir gehts wie den anderen. So ganz klar ist mir nicht, wo da jetzt das 
große rechnerische Problem liegt. Und vor allen Dingen, wo da die 
Schwierigkeit bei der Optimierung liegt. Ich weiß, was ich will, also 
rechne ich mir aus, was das für den Timer bedeutet. Stellt sich raus, 
dass das zeitlich knapp wird, dann muss ich eben irgendwas von meinen 
Vorgaben etwas entschärfen.

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
Noch kein Account? Hier anmelden.