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
Anbei noch der Excel-Export. Und nochmals Danke im Voraus.
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
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"
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.
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 :-)
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
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); |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.