tach, ich muss für meine dipl-arbeit nen sinus mit nem atmega erzeugen. umsetzen tu ich das dann mit nem da-wandler aber den programm-code für den atmega brauche ich ja. ich will diesen standart sinus erzeugt mit dds, wie man es hier ständig liest. also, wär nett, wenn jemand hier den programm code reinstellt, anschließen zwischen atmega8 und da-wandler mach ich selber. daher soll das hier jemand reinstellen! gruß, hannes
hannes schrieb: > also, wär nett, wenn jemand hier den programm code reinstellt, > > anschließen zwischen atmega8 und da-wandler mach ich selber. Und Du meinst wirklich, das hier im Forum einer deine Diplomarbeit macht???
hannes schrieb: > daher soll das hier jemand reinstellen! ^^^^ und zwar dalli! Das ging sogar so schnell, daß es bereits reingestellt wurde, bevor du die Frage überhaupt stelltest. Zb im Wiki und haufenweise auch im Forum: Lookup, CORDIC, lineare Interpoation, ...
Ich Schwanke noch zwischen Troll und "ich lass mich studieren" Auch das Auftreten lässt nur trollhafte Rückschlüsse zu. Die Arbeit finde ich für einen Diplomanden recht ... na ja lahm eben. Hier im Forum gibt es bestimmt 1000 Leute die nicht auf der UNI waren und so etwas in der Kaffeepause zwischendurch machen. Ich mein Sinus berechnen im RAM ablegen und dann nur noch in der richtigen Frequenz ausgeben. Fällt so ziemlich unter die ersten Test Progrämmchen für anfänger, so Richtung 20 Zeilen in C. Trotz allem bin ich neugierig geworden und würde gern noch mehr darüber hören. Gruß Sven
Dies hier mag ein Troll sein, aber viele Absolventen können heute nur noch reproduzieren, weil sie nichts mehr anderes gelernt haben.
Das scheint leider so. Selbst Google können sie anscheinend nicht mehr bedienen, um z.B. nach "miniDDS" zu suchen. Von einem Diplomanden würde ich auch erwarten, dass er in der Lage ist, sein Anforderungen anständig zu spezifizieren und gewisse Umgangsformen an den Tag legt. mfg Michael
haltet mal den ball flach :) ich werds schon schaffen, die grundfunktionen laufen jedenfalls schonmal :) muss dass jetzt noch in der lookuptable speichern und dann abrufen, aber das wird auch noch. meine diplomarbeit besteht natürlich nicht nur aus dem erzeugen von sinüssen, das ist vllt. 5% der standart an deutschen fachhochschulen ist immernoch hoch... fachhochschulen sind sowieso viel cooler als unis ;)
So? was findest Du cool an Fachhochschulen? (Kopfschüttel. War selber an einer FH)
hannes schrieb: > der standart an deutschen fachhochschulen ist immernoch hoch... Bei der Rechtschreibung aber eher nicht, oder was hat eine FH mit Flaggen zu tun?
>hannes< scheint ein ziemlich aroganter schwachkopf zu sein ... *kopfschüttel*
hannes schrieb: > also, wär nett, wenn jemand hier den programm code reinstellt, > anschließen zwischen atmega8 und da-wandler mach ich selber. Ich hätte da einen sehr einfachen Vorschlag. Du schließt einen 8-Bit DA-Wandler an einem Port an und gibst die Buchstaben S I N U S als ASCII Zeichen parallel als 8 Bit, nacheinander aus. Eine kleine Schleife drum rum und schon hat der Atmega "Sinus" erzeugt. Das geht übrigens auch prima mit Cosinus, Tangens oder sogar mit FFT oder Kreuzleistungsdichtespektrum!
Michael A. schrieb: > ... nach "miniDDS" zu suchen. Peter R. schrieb: > schau mal, in disem Forum unter dem Stichwort "Jesper DDS" nach. Habt ihr nicht gelesen, was der TO möchte? ;-) hannes schrieb: > daher soll das hier jemand reinstellen!
Ist das so ein Bachelor-Diplom? So ein Ding für 9 Wochen Abschreiben von ein paar Binsenweisheiten? Wir haben in der Firma jetzt so einen Schwung von diesen Typen bekommen. Man, kann man die verarschen, wie früher die Stifte, die man die Optische Achse durch die Werkstatt tragen lies. Das die Morgens alleine den Reißverschluss ihrer Hose ohne die Mami zubekommen ist ein Wunder.
>ich will diesen standart sinus erzeugt mit dds, wie man >es hier ständigliest. >daher soll das hier jemand reinstellen! >Lahmer Sauhaufen. Weshalb ist der Code noch nicht da? Solche Sprueche kann man allenfalls als Chef einmal klopfen. Ich seh da wird nichts mit dem Diplom. Falsche Berufswahl. Probier's nochmals als was Anderes. So schwierig ist ein DDS nun auch nicht.
Hannes Jaeger schrieb: > Man, kann man die verarschen, wie früher die Stifte, die man die > Optische Achse durch die Werkstatt tragen lies. Das die Morgens alleine Oder die Kiste mit dem Spannungsabfall.
Hannes Jaeger schrieb: > Man, kann man die verarschen, wie früher die Stifte, die man die > Optische Achse durch die Werkstatt tragen lies. oder - Vierkantbohrer - Anlaßfarben - Ambossfett - Gewindehammer
Mein Meister Thiel hat mich zum Metzger geschickt um 2 Kilo Schwarzschulter zu kaufen. Ich war damals Radio und FS Lehrling, aber schon recht eingelesen. So hatte der Metzger zwar keine Schwarzschulter aber adäquates Rinderfilet ;-), hähä... Das hab ich Ihm dann mitgebracht . Er war grundgeizig und überrascht, kam aus der Nummer aber nicht mehr raus ;-)... Radio Fern, Essen
Heute könnte man statt billiger Schwarzschulter hintere Schwarzschulter (äquivalentes Kobe Rind) mitbringen. Beim derzeitigen Kilopreis aber die Literflasche Baldrian für den Meister nicht vergessen.
hm.. .oO (mal die trolle ignorieren...) sinus mit atmega war die frage.. variante 1: sinus funktion von gcc - recht langsam variante 2: lookup-table - speicherintensiv, ginge aber gut für 8bit bereich nun aber noch eine weitere möglichkeit: federpendel im atmega simulieren. das sind eigentlich einfache formeln, geben aber eine hübsche sinuskurve. für ein pc programm hatte ich das mal verwendet, da aber noch mit floats. für einen atmega könnte man das relativ einfach auf festkommaarithmetik umschreiben.
stru_aus schrieb: > nun aber noch eine weitere möglichkeit: federpendel im atmega > simulieren. Nur mal aus reiner Neugierde. Was ist ein „Federpendel“? Ein mathematisches Pendel, ein physikalisches Pendel oder einen Feder-Masse-Schwinger simulieren? Was bedeutet Simulation? Numerische Lösung der Differentialgleichung oder die Lösung der Dgl. verwenden? Wenn ich jedoch die Lösung verwende brauche ich ja den Sinus, der ist ja gerade ein Teil der Lösung. Was hast du mit deiner weiteren Möglichkeit gemeint?
federpendel ist sowas: http://de.wikipedia.org/wiki/Federpendel masse, feder mit federkonstante. jeweils für jedes neue sample einmal die kraft berechnen, die ändert die geschwindigkeit, und das für zu neuer position.. also mal eine einfache theoretische implementation: start: -man definiert masse m und federkonstante c (nur dies beiden haben einfluss auf frequenz, siehe wikipedia). -starten mit maximalen ausschlag, x= -1.0, geschwindigkeit v=0 dann kleine schritte: jeweils um den zeitfaktor dt (zB 1/44100 sek) -berechnen der kraft: f= -c * x -berechnen der neuen geschwindigkeit: v+= f/m * dt -berechnen der neuen position: x+= v * dt und - tadaa - es kommt ein hübscher sinus heraus.
Federpendel : die zweite Ableitung ist wieder proportional zum Funktionswert. Geht aber nicht, das man wegen der Rundungsfehler keine konstante Amplitude bekommt. Also, enweder zerfaellt die Schwingung, oder sie wird immer groesser. Dh man muss noch etwas nachhelfen...
Wir mussten das im dritten Semestern in Assembler für den Nerdy programmieren. Lookup-Tabelle->A/D-Wandler->Tiefpass. Das sind, selbst mit Interrupts und Unterprogramm nicht mehr als 30 Zeilen. Den Code habe ich hier noch herumliegen. Aber ich werde ihn nicht verschenken, oder verkaufen. Das wirst Du schon noch selbst hinbekommen sollen als angehender Ingeneur ;-)
Bernd M. schrieb: > Hannes Jaeger schrieb: >> Man, kann man die verarschen, wie früher die Stifte, die man die >> Optische Achse durch die Werkstatt tragen lies. Das die Morgens alleine > > Oder die Kiste mit dem Spannungsabfall. Hehe, oder wenn ein Akku einen zu großen Innenwiderstand hat einen kleineren einlöten lassen.
Der Bayer schrieb: > Oder beim APotheker Getterpillen besorgen lassen ;-).... Tja, wer kennt sich heute noch so gut mit Röhren aus ... Vielleicht noch mit 'nem röhrenden Auspuff ;-)
>Also, enweder zerfaellt die Schwingung, >oder sie wird immer groesser. >Dh man muss noch etwas nachhelfen... kein Problem, einfach PI-Regler nachschalten.
Hannes Jaeger schrieb: > Ist das so ein Bachelor-Diplom? So ein Ding für 9 Wochen Abschreiben von > ein paar Binsenweisheiten? > > Wir haben in der Firma jetzt so einen Schwung von diesen Typen bekommen. > Man, kann man die verarschen, wie früher die Stifte, die man die > Optische Achse durch die Werkstatt tragen lies. Das die Morgens alleine > den Reißverschluss ihrer Hose ohne die Mami zubekommen ist ein Wunder. Schon mal Bachelorarbeit geschrieben oder eine betreut? Keine ernstgemeinte Bachelorarbeit der BRD wird in 9 Wochen geschrieben. Anmeldedatum sind auch nur Alibis. Würde mal sagen deine scheiße Firma sucht gezielt nach dummen Leuten.... Achso Argumente von wegen "Das sind die aktuellen Kandidaten auf dem Arbeitsmarkt!" kommen da jetzt. Dann frag ich mich wer die ganzen tollen und interessanten Projekte an den Unis bearbeitet.
Sollte jetzt jeder Vollpfosten kopieren können...
1 | #include <avr/io.h> |
2 | #include <avr/interrupt.h> |
3 | #include <avr/pgmspace.h> |
4 | #include <inttypes.h> |
5 | |
6 | #define F_CPU 8000000UL // Quarz mit 8.000.000 Mhz
|
7 | #define TIMERRELOAD 256 // Nachladewert des Timers 255
|
8 | #define AUFLOESUNG 65536 // 16-Bit Counter 65535
|
9 | |
10 | const uint8_t sinustabelle[256] PROGMEM = {127,130,133,136,139,143,146,149,152,155,158,161,164,167,170,173,176,178,181,184,187,190,192,195,198,200,203,205,208,210,212,215,217,219,221,223,225,227,229,231,233,234,236,238,239,240,242,243,244,245,247,248,249,249,250,251,252,252,253,253,253,254,254,254,254,254,254,254,253,253,253,252,252,251,250,249,249,248,247,245,244,243,242,240,239,238,236,234,233,231,229,227,225,223,221,219,217,215,212,210,208,205,203,200,198,195,192,190,187,184,181,178,176,173,170,167,164,161,158,155,152,149,146,143,139,136,133,130,127,124,121,118,115,111,108,105,102,99,96,93,90,87,84,81,78,76,73,70,67,64,62,59,56,54,51,49,46,44,42,39,37,35,33,31,29,27,25,23,21,20,18,16,15,14,12,11,10,9,7,6,5,5,4,3,2,2,1,1,1,0,0,0,0,0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,16,18,20,21,23,25,27,29,31,33,35,37,39,42,44,46,49,51,54,56,59,62,64,67,70,73,76,78,81,84,87,90,93,96,99,102,105,108,111,115,118,121,124}; |
11 | |
12 | volatile union {uint16_t u16; uint8_t u8[2];} counter; //0 ist Low, 1 ist High Byte |
13 | volatile uint16_t offset; |
14 | |
15 | void frequenz_setzen(uint8_t Ausgabefrequenz){ // 614 Takte mit -Os |
16 | offset = ((F_CPU/2 + Ausgabefrequenz * TIMERRELOAD * AUFLOESUNG) / F_CPU); // F_CPU/2 ist fürs Runden |
17 | }
|
18 | |
19 | int main(void){ |
20 | OSCCAL = 0xAE; //Kalibrieren des Internen RC OSC |
21 | TCCR1A = (1<<COM1A1) | (1<<WGM10); //Clear OC0A on Compare Match & Fast PWM Mode 5 |
22 | TCCR1B = (1<<WGM12) | (1<<CS10); //CPU-Takt & Fast PWM Mode 5 |
23 | TIMSK = (1<<TOIE1); //Timer 1 Overflow interrupt an |
24 | DDRB = (1<<PB1); //PB1 (OC1A) als Ausgang |
25 | frequenz_setzen(50); |
26 | sei(); |
27 | |
28 | while(1); |
29 | |
30 | return 0; |
31 | }
|
32 | |
33 | ISR(TIMER1_OVF_vect){ |
34 | OCR1A = pgm_read_byte(&sinustabelle[counter.u8[1]]); |
35 | counter.u16 += offset; |
36 | return; |
37 | }
|
Nimm nenn NE555 mit nem Tiefpass dahinter! Dann sparst du dir das Programmieren (das du eh nicht verstehst) und den DA-Wandler. Ist also viel billiger! Oder mach nur ne Ausbildung - dann bleibt dir selbständiges Arbeiten zumeist auch erspart!
>also, wär nett, wenn jemand hier den programm code reinstellt, >anschließen zwischen atmega8 und da-wandler mach ich selber. Du bist der Hammer... Kannst ja mal lieb fragen, ob das Anschliessen nicht auch noch jemand übernehmen kann, dann musst du nur noch den schriftlichen Teil bewältigen (oder du kippst das dann auch ab)... Ein Sinus im AVR erzeugen, ist deine Dipl.-Arbeit? Wo studierst du? Andere Leute entwickeln komplette Schaltungen, programmieren diese, entwicklen Gehäuse, Win/Linux Frontends etc... Oder "bauen" mal eben eine Windkraftanlage aufs Unigelände und kümmern sich um die Genehmigungen, Neztzeinspeisungen, Dimensionierungen, Abnahmen etc... Trete ich dir zu nahme, wenn ich behaupte, dass du eine Schande für jede Hochschule bist? Tut mir echt leid, aber allein dein Ton, passt absolut nicht zu deiner angeblichen Qualifikation... >daher soll das hier jemand reinstellen! ...dein "Wunsch", ist uns Befehl
stru_aus schrieb: > federpendel ist sowas: > http://de.wikipedia.org/wiki/Federpendel > masse, feder mit federkonstante. Das ist ein sehr schönes Beispiel dafür, dass Wikipedia oft eine exzellente Quelle für „Halbwissen“ ist. Einige setzen einen Artikel rein, der Rest der Welt denkt nun dass diese Quelle ein Gesetz ist. Ein Pendel ist etwas anderes als ein linearer Feder-Masse-Schwinger. Während ein Schwingungssystem, bestehend aus einer Masse und einem linear elastischen Federverhalten tatsächlich lineare Schwingungen bezüglich der Ortskoordinate ausführt, ist die Winkelauslenkung eines Pendels nichtlinear! Nur bei kleinen Winkelausschlägen kann die Dgl. linearisiert und damit auch eine harmonische Lösung gefunden werden. stru_aus schrieb: > start: > -man definiert masse m und federkonstante c (nur dies beiden haben > einfluss auf frequenz, siehe wikipedia). > -starten mit maximalen ausschlag, x= -1.0, geschwindigkeit v=0 > > dann kleine schritte: jeweils um den zeitfaktor dt (zB 1/44100 sek) > -berechnen der kraft: f= -c * x > -berechnen der neuen geschwindigkeit: v+= f/m * dt > -berechnen der neuen position: x+= v * dt > > und - tadaa - es kommt ein hübscher sinus heraus. Dein vor dir beschriebenes Lösungsverfahren entspricht der numerischen Lösung der Bewegungsdifferentialgleichung mittels dem einfachsten Lösungsalgorithmus, dem impliziten Euler-Cauchy-Verfahren (auch Rechteckregel). Das Verfahren ist zwar konsistent und konvergent hat aber Stabilitätsprobleme. Dein 1/44100 als Zeitschritt ist somit willkürlich und führt nicht immer zu einer richtigen Lösung.
@stru_aus Da ich ein Fauler Programmiere bin kombiniere ich einfach beide Lösungen. Hat den Vorteil das es schnell läuft und zur Laufzeit variabel ist. Außerdem muss ich nicht mehr an die lockup ran (Auflösung ändern etc.). Einfach zur Init Zeit lockup befüllen und dann nur noch hirnlos im KREIS auslesen. @ Feder-Pendler Ein Sinus hat wohl eher was mit einem Kreis ( vor Doofe auch Scheibenwischer ) gemein also mit einer Feder. .... na ja ich Troll mich dann mal ... Duck und weg.
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.