Hi... Ich möchte mit meinem ATmega16 ein Taktsignal für einen externen AD Wandler erzeugen. Dieses möchte ich in C/C++ programmieren. Jetzt meine Frage. Kennt jemand von euch eine geeignete Funktion (Header Datei) in C die mir helfen könnte... Ich möchte im Nanosekunden bereich, Einstellungen treffen können... Ist das überhaupt möglich? Danke schon mal
'Im Nanosekunden-Bereich' ist ziemlich vage ausgedrückt. ATMega16 läuft mit max. 16MHz, d.h. ne Zykluszeit von 62,5ns. Schneller kommste damit nicht hin. Gehe davon aus, dass du 'Entscheidungen treffen' meinst. Über nen Interrupt dauert's immer ein paar Zyklen. Für eine 'Entscheidung' musste da mit ein paar hundert ns rechnen. Wenns wirklich Zeitkritisch ist, ist Assembler sinnvoll (u.U. eingebunden in C-Code). Wesentlich schneller gehts dann nur im DSP-Bereich... Gruß Johnny
Es ist so das ich einen AD-Wandler über den µC ansteuern will. Der AD-Wandler braucht einen Takt SCLK. Mit CS (Chipselect) geb ich sozusagen ein Startsignal das der Takt losgeht. 16 Takte geht ein Zyklus. In den ersten 3 Takten ist der AD-Wandler im Track mode. In den restlichen 13 Takten schickt er das digitalisierte Signal zum µC raus. Meine Taktfrequenz ist 8MHz. Jetzt mal abgesehen vom Nanosekunden Bereich. Hättest du eine Idee wie ich das realisieren könnte. Ich bin noch Anfänger in Sachen µC und C-Programmierung...
Ist denn der AD-Wandler so schnell von der Samplingrate bzw. wieviele Samples schafft der? Denke mal nicht, dass der 1.000.000 Wandlungen/sek schafft. Ist das eine SPI-Schnittstelle am Wandler?
Am besten mal posten, was das für'n ADC ist (Typ, Hersteller). Das macht es einfacher:-)
ich hab sowas mit einem tiny mal gemacht. also nur per assembler (sbi/cbi fürs cs und ori zum clk-toggeln; befehle ohne wartepausen/interrupts einfach nacheineinander ausgeführt in einer mainloop). geht, aber geht nur langsam (ein paar hundert-werte/min, jedenfalls weit von der performance des wandlers entfernt). zu testzwecken allemal tauglich, aber für ernsthaften transfer warscheinlich zu lahm und wackelig. nimm lieber etwas kombinatorische logik, also flip-flops und gatter. egal, ob diskret (verdrahtungsaufwand) oder cpld. das geht allemal sauberer und skalierbarer.
"16 Takte geht ein Zyklus." Klingt nach einem Fall fürs SPI (HW oder SW). Die Takte müssen nur im angegebenen min/max-Bereich sein, der genaue Wert ist unkritisch. Peter
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.