Aussteuerungsanzeige mit Osziröhre

Wer seine kompletten Projekte vorstellen möchte, kann dies hier tun

Moderator: Sebi

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon Sebastian » 13.02.2014, 17:16

wenn nur 50 kHz wären, könnte man keinen 16MHz Quarz anschließen, da der Prescaler auf max. 128 gesetzt werden kann. zZ. ist der auf 8 Gesetzt und ich lasse die Kiste mit 8 Mhz internen Oszillator laufen (da ich keinen Quarz zur Hand habe). Damit rennt der auf 1 MHz, ist aber für 8 Bit noch hinreichend genau. :D Trotzdem verschwende ich ja mit dem Wartezyklus 7 und später 15 Takte.

Geht das mit nem 16 MHz Quarz eigentlich noch auf nem Steckboard? Die Querkapazitäten sind ja viel größer als die angegebenen Ziekapazitäten. :roll:
Sebastian
 
Beiträge: 921
Registriert: 10.04.2009, 20:11
Wohnort: Sachsen

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon Chef » 13.02.2014, 17:20

Zumindest mit 14,756 MHz läuft (lief) mein BasicBeetle stabil auf dem Steckboard ;).

Chef :D
Wenn es die Elektronik nicht gäbe, müsste man sie erfinden.
Benutzeravatar
Chef
Site Admin
 
Beiträge: 2941
Registriert: 04.11.2008, 17:56
Wohnort: Hamburg

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon topas » 13.02.2014, 18:26

Die Taktfrequenz ist aber nicht die Wandlungsfrequenz (Samples/s). Die minimale Wandlungszeit (für 10bit) ist 13µs (76KHz).
topas
 
Beiträge: 3795
Registriert: 16.08.2010, 12:47

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon Anse » 13.02.2014, 18:28

Irgendwie sollte ich einmal ne header-Datei anlegen aber da weiß ich auch nicht wie man das macht...
Eine header-Datei ist egentlich nichts anderes als eine Datei mit der Endung h. Allerdings darf sie keinen ausführbaren Code enthalten. Also nur Definitionen und Prototypes*.
Zu der header Datei gehört auch noch ein C-File mit gleichem Namen aber mit Endung *.C .
In dem C-File wird die Dazugehörige h-Datei eingebunden und noch alle andern Libs die Du brauchst. z.B. string.h und math.h.
In dein Programm wird ebenfalls die Die h-Datei eingebunden. Sie bildet praktisch die Verbindung von Deinem Programm zu dem C-File.

*Muss ich zu Prototypes auch noch was erklären?
Anse
 
Beiträge: 1442
Registriert: 09.06.2011, 14:18

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon Sebastian » 13.02.2014, 18:42

@Anse
Danke, dann hatte ich das mit der h-Datei richtig Verstanden.
Jetzt ist nur noch die Frage, wie ich in AVR-Studio weitere c und h-Dateien erstellen kann? :roll:

topas hat geschrieben:Die Taktfrequenz ist aber nicht die Wandlungsfrequenz (Samples/s). Die minimale Wandlungszeit (für 10bit) ist 13µs (76KHz).


Naja aber was hat dann denn der Prescaler für einen Effekt, wenn er die Taktfrequenz nicht in eine Wandlungsfrequenz teilt. Der lässt sich über die Bits ADPS 0-2 auf 2-128 einstellen...
Sebastian
 
Beiträge: 921
Registriert: 10.04.2009, 20:11
Wohnort: Sachsen

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon topas » 13.02.2014, 18:46

Macht der Prescaler doch. max. Wandlungszeit ist 260µs.
topas
 
Beiträge: 3795
Registriert: 16.08.2010, 12:47

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon Sebastian » 13.02.2014, 18:56

Naja aber ich habe irgendwie das Gefühl, das es keine minimale Wandlungszeit gitb, aber es gibt eine minimale Zeit für sinnvolle Ergebnisse.

Als ich den ADC mit 4 MHz getestet habe kam zwar nur Müll heraus (die gemessenen Spannungshöhe war nur ein Bruchteil der eigentlichen Spannung) aber die Messung ging wesentlich schneller voran, als mit 1 MHz Wandlungsfrequenz. Das habe ich daran gesehen, das mein Kreis schneller gezeichnet wurde -> der uC musste nicht so lange auf die ADC-Messung warten.
Sebastian
 
Beiträge: 921
Registriert: 10.04.2009, 20:11
Wohnort: Sachsen

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon Anse » 13.02.2014, 19:01

Jetzt ist nur noch die Frage, wie ich in AVR-Studio weitere c und h-Dateien erstellen kann?
New/File/-->Auswählen, welche Art von Datei C oder h.
Welche Version des AVR Studios verwendest Du?
Anse
 
Beiträge: 1442
Registriert: 09.06.2011, 14:18

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon topas » 13.02.2014, 19:08

Darum geht es ja. Der getaktete Teil des Wandlers ist ja eine Art Schieberegister (Successives Approximationsregister). Das läuft theoretisch bestimmt mit der vollen Taktfrequenz. Bei 10 Bit muss es wohl 13 Schritte machen. Also könnte man 16MHz/13 = gut 1M Wandlungen/s schaffen (der Prescaler fängt aber erst bei 2 an) . Der Wandler besteht aber auch noch aus einem DA-Wandler und einem Komparator sowie der Sample&hold. Die brauchen etwas Zeit. Aber selbst bei 1 MHz Takt für den Wandler und 8 Bit Auflösung kommen wohl nur 100 000 Wandlungen/s raus. Stösst Du die Wandlungen mit einem Timer an oder lässt Du ihn frei laufen?
topas
 
Beiträge: 3795
Registriert: 16.08.2010, 12:47

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon hws » 13.02.2014, 20:19

Sebastian hat geschrieben:Theoretisch kann man doch auch während der Konvertierung was sinnvolles machen oder?
Das ist der Sinn eines Interruptes. Die Wandlung wird gestartet, Die Wandlung durchgeführt. Und wenn sie fertig ist, meldet sie sich über den Interrupt als "fertig" zurück. Solange läuft das "Hauptprogramm" mit Punkteberechnung usw des vorherigen Wertes weiter.

Gehört zu den "fortgeschrittenen Programmiertechniken". Einstieg: eine blinkende LED. Die Blinkzeit macht man über eine Zeitschleife (verbrät also die Prozessorzeit. "for I=1 to xxx: next") Per Interrupt: man initiiert einen Interrupt - z.B. alle 0,5..2 Sekunden. Und innerhalb der Interruptroutine wird die LED umgeschaltet. Dann kehrt man zum Hauptprogramm zurück. Jetzt passiert - über den Interrupt initiiert - alle 0,5..2s für einige µs die LED-Umschaltung. Im Übungsbeispiel passiert im Hauptprogramm nix, aber man könnte dort beliebigen Code ausführen.
Die Prozessorzeit-Verbrat Routine gibts hier: http://www.avrfreaks.net/index.php?name ... ic&t=94232
Und irgendwo gab es eine Gegenüberstellung: Zeit-Verbraten vs Interrupt. Hab ich aber nicht mehr griffbereit

hws
hws
 
Beiträge: 1081
Registriert: 11.01.2009, 18:58
Wohnort: NRW

Re: Aussteuerungsanzeige mit Osziröhre

Beitragvon Sebastian » 14.02.2014, 12:05

@ Anse

Danke, da habe ich wohl nicht genau genug gesucht. :oops:

Ich Verwende die aktuellste Version 6.1 .
topas hat geschrieben: Stösst Du die Wandlungen mit einem Timer an oder lässt Du ihn frei laufen?

Die Wandlung wird vom Programm nach einer Schleife aufgerufen.
Also erst wird der ADC ausgelesen und dann wird ein Punkt in abh. des Winkels auf einem Einheitskreis berechnet. Zum Schluss wird der ADC wert mit dem Radius des Einheitskreis verrechnet und dann geht es wider von vorn los.

@ hws
Ja mit den Interrupts muss ich mich auch noch einmal auseinandersetzen. Ich hab ja erst angefangen zu Programmieren und das Kapitel habe ich erst einmal übersprungen. :D
Sebastian
 
Beiträge: 921
Registriert: 10.04.2009, 20:11
Wohnort: Sachsen

Vorherige

Zurück zu Komplette Projekte

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast