-         

Ergebnis 1 bis 10 von 10

Thema: Je mehr ich Lese desto mehr komme ich mit dem durcheinander

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Bremen
    Alter
    43
    Beiträge
    63

    Je mehr ich Lese desto mehr komme ich mit dem durcheinander

    Anzeige

    Hallo ,

    Also meine frage ist wievile Messungen mit dem ADC 1 kann ich
    in 0,1 Ms machen .

    Mein Problem ist eigentlich einfach glaube ich .
    Ich möchte nach dem Abschalten eines Portes
    die Entladung einer Spule Messen .
    jetzt möchte ich das er bei 2,5 V oder etwas Tiefer einen Prozess anstößt .
    Aber leider mißt er so selten das er erst bei ca 1 V ein Meßergebniss hatte.
    Die Entladung dauert laut meines Oszis 0,1 Ms .
    Aber ich komme nicht über 4 Messungen .
    OK ich benutze bei jedem durchlauf den PRINT Befehl das Bremst bestimmt .

    Dann habe ich es mal Versucht den Print hiner einer if Schleife zu legen.

    If adc <= 300 then Print adc end if
    aber da kammen auch immer andere Werte Raus .
    Zwischen 50 und 200

    Jetzt möchte ich einfach nur wissen
    was ist die Schnellste Methode um mit dem ADC zu Messen ?

    Ich habe einen Mega8 mit externen 12MhZ
    der Prescaler ist auf AUTO eingestellt .
    Oder macht es mehr sinn ihn fest einzustellen ?
    Den High speed mode habe ich auch an hoffe ich.( set sfior.adhsm)
    Oder müßen da noch andere einstellungen sein ?

    Gruß Holger

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622

    Re: Je mehr ich Lese desto mehr komme ich mit dem durcheinan

    Hallo Holger,

    Zitat Zitat von becki133
    Also meine frage ist wievile Messungen mit dem ADC 1 kann ich in 0,1 Ms machen .
    die schnellste A/D-Wandlung beim ATmega8 dauert 13 A/D-Zyklen. Falls Du die A/D-Wandler-Frequenz auf 200kHz einstellst, dauert eine Wandlung 65μs, Du schaffst also eineinhalb Messungen in 0,1ms. Für < 10-Bit-A/DC kannst Du die A/DC-Wandler-Frequenz auch erhöhen.

    Ich habe einen Mega8 mit externen 12MhZ der Prescaler ist auf AUTO eingestellt .
    Wovon Du hier sprichst, verstehe ich nicht. Der ADC-Prescaler lässt sich nur in Stufen (CK/2, CK/4, ...CK/128) einstellen, "AUTO" gehört nicht dazu.

    Kann sein, dass Du von Bascom-Einstellungen sprichst, von denen ich nichts verstehe, da ich kein Bascom kann. Ich gehe nur von den Möglichkeiten des ATmega8 aus.

    Viele Grüße

    Fred
    Only entropy comes easy. - Anton Checkhov

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Zu den Samplezeiten der ATMegas:
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=33070
    Das dürfte für deine Spule reichen...

    Hab' ich mal für ein eigenes Projekt erforscht:
    http://www.roboternetz.de/phpBB2/zei...ag.php?t=33228
    (Im Thread ist ein Nachbau mit einem Mega8 beschrieben.)

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Felix G
    Registriert seit
    29.06.2004
    Ort
    49°32'N 8°40'E
    Alter
    34
    Beiträge
    1.780
    jetzt möchte ich das er bei 2,5 V oder etwas Tiefer einen Prozess anstößt.
    Wenn das alles ist, warum nimmst du dann nicht den analogen Komparator?

    Der kann dir einen Interrupt erzeugen, sobald die Spannung einen bestimmten Wert erreicht. Du musst nur am einen Eingang deine zu messende Spannung und am anderen Eingang eine Referenzspannung (in deinem Fall 2,5V) anlegen.

    Ich jedenfalls würde, wenn ich die Zeit messen wollte bis eine bestimmte Spannung erreicht ist, den Port abschalten und sofort danach einen Timer los rennen lassen (sofern noch einer verfügbar ist). Dann muss wenn der Interrupt vom Komparator kommt nurnoch der Zählerstand des Timers ausgelesen werden.
    So viele Treppen und so wenig Zeit!

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Und nicht vergessen: bei 9600 Baud dauert der Print von einem Zeichen ~ 1 mS also wenn ein Zeichen + CRLF -> 3 Zeichen dann sind 3 mS weg
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Bremen
    Alter
    43
    Beiträge
    63
    Hallo
    Danke für die vielen schellen Antworten .

    Einer meiner größten fehler war bei mir im Kopf .

    die schnellste A/D-Wandlung beim ATmega8 dauert 13 A/D-Zyklen. Falls Du die A/D-Wandler-Frequenz auf 200kHz einstellst, dauert eine Wandlung 65μs
    Ich habe zwar zigmal die 200KHz gelesen habe aber immer
    mit meinen 12MHz Quarzfrequenz gerrechnet beim überschlagen wie
    wie oft er messen kann
    ABer da kommst du echt auf tolle Werte

    @ fhs
    Ja es ist eine Bascom einstellung .
    da Berrechnet er den Prescaler selber .

    @ Felix G
    Dann werde ich mir mal den Analog Komparator anschauen .
    Werde aber erstmal gegen GND messen
    Muß dann nochmal meinen Vorteiler überdenken
    Der ist zurzeit 11:1 da kommt bei 5V nicht viel durch .
    Oder ich erhöhe die Spannung zum Messen .

    Bin auch am überlegen ob ich den Chip wechsel
    Irgendwas mit mehr 16 Bit Timer und mehr Komparatoren .
    Muß mich mal bei Atmel umsehen was da Passt .

    @ PickNick
    Sehr interessant mit den Laufzeiten des Print Befehls
    habe ich noch nie Drüber nachgedacht .
    Und ich bin sehr Großzügig mit dem Ausschmücken des Befehls.
    Werde es wohl auch in anderen Projekten mal überarbeiten .

    @radbruch
    Werde ich mir mal alles durchlesen .

    Gruß becki

  7. #7
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Werde ich mir mal alles durchlesen.
    Ist nicht nötig. Es wird nur gezeigt, dass der ADC durchaus auch im Bereich einiger µs wandeln kann.

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    27
    Beiträge
    587
    Mal eine Querdenkerfrage: Brauchst du wirklich einen Adc, oder reicht es wenn sich ein pin ändert, wenn die Spannung unter x geht. Dann hätte ich eine Lösung. Nutz den internen AC(Analog Comparator), der bietet zugar meistens ein Interrupt bei Pinänderung.

    Nochwas: Wer sich bei Bascom über die Geschwindigkeit beschwert, ist selber schult, da Bascom nicht das Ziel hat wie C schnell zu sein, sondern einfach. Weitere Infos dazu gibt es übrigens im Wiki unter Codevergleich...

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Bremen
    Alter
    43
    Beiträge
    63
    Hallo S.O.

    Ja ich werde auch den Komparatot benutzen .
    Denn ich will ja nur das sich ein Pin ändert wenn eine
    Spannung unterschritten wird .

    In diesem Fall würde ich sagen ist die Sprache egal
    denn der ADC wird einfach nicht schneller .


    Gruß Holger

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    27
    Beiträge
    587
    Freut mich, dass Du meine Lösung nimmst.

    Zur Sprache: Die Sprache ist - wie das Betriebssystem - ein Glaubensfrage. Klar geht das Hardware gleich schnell, nur die Verarbeitung hat deutliche Unterschiede. So kann Bascom nicht - wie der GCC - mit Registern arbeiten, sondern legt alles immer ins RAM. Und jeder Ramaufruf kostet 2 Clocks. Macht im krassesten Fall (2(load) + 2(store) + 1(bearbeiten) 4 Clocks Differenz aus. Ich will jetzt aber nicht vom Thema abschweifen. Ich bin halt "überzeugter" "GCC"er. Wenn es dich interessiert, schau dir im Wiki mal den Codevergleich an...
    http://209.85.135.104/search?q=cache...nt=iceweasel-a

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •