-         
+ Antworten
Ergebnis 1 bis 9 von 9

Thema: Externer Takt,aber wie definieren?

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478

    Externer Takt,aber wie definieren?

    Hi,
    Ich habe einen Mega 16 mit externem Takt(Quarzoszilator).
    Wie "sage" ich Bascom das dies so ist und welche Frequenz?

    mfg

    Involut

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.06.2004
    Ort
    Bad Schussenried in Oberschwaben
    Alter
    26
    Beiträge
    1.461
    Hi Involut!

    dazu musst du die sog. Fusebits umstellen.
    Ich mache das ganz gerne mit dem AVRStudio von Atmel.
    Aber mit Bascom geht das auch. (Ich weis nur nicht wie... )

    Wenn du umgestellt hast, wagst du das Bascom in
    Options > Compiler > Communication
    oder sagst am Anfang des Quellcodes "$crystal = <Frequenz in Herz>"

    Liebe Grüße,
    Tobi
    http://www.tobias-schlegel.de
    "An AVR can solve (almost) every problem" - ts

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478
    Hi,
    und vielen Dank.Ich habe mich wohl etwas umständlich ausgedrückt.
    Ich hatte die Fuse bits schon gesetzt wohl aus versehen und dann den Takt abgeschlossen um Die Sache wieder grade zu biegen.Allerdings wuerde ich ihn gerne Dranlassen.Und jetzt hatte ich timing probleme,
    genau genommen hat er bei wait 1 , 2sec gewartet usw.
    Nun dachte ich es läge an Bascom,weil Bascom nicht "weiss" das es nen ext. Takt gibt.
    Allerdings habe ich den Übeltäter gerade gefunden.
    Wenn man diese Zeile weglässt

    Config Servos = 2 , Servo1 = Portb.7 , Reload = 10 , Servo2 = Portb.0 , Reload = 10

    dann geht er wieder Normal.
    Nun weiss Ich zwar woran es liegt habe aber keine Ahnung wie man da Abhilfe schafft.Wenn also jemand ne idee hat.

    gruss

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Nun weiss Ich zwar woran es liegt habe aber keine Ahnung wie man da Abhilfe schafft.Wenn also jemand ne idee hat.
    Ich habe bisher die Erfahrung gemacht, dass der "Wait"-Befehl immer reichlich ungenau arbeitet.

    Ich würde diesen Befehl grundsätzlich meiden, da ich es auch nicht besonders elegant finde den Controller sekundenlang in einer Art Warteschleife nichts tun zu lassen.

    Für kurze Pausen unter einer Sekunde eignet sich sowieso nur der Befehl "Waitms" und das aber auch nur, wenn es nicht so genau auf die exakte Zeiten ankommt.
    Wenn man exakte Zeiten einhalten will, geht das soweit ich weiss nur über einen Timer.
    Eleganter ist das auf jeden Fall, weil der Controller dann während der Wartezeit auch noch irgendwas sinnvolles machen kann. Leider ist es mit Timern aber auch meist kniffliger, besonders wenn man viele verschieden lange Pausen benötigt, oder Funktionen nutzt für die Bascom die Timer intern belegt.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478
    ..ich will aber Servos benutzen und die tuens auch nicht...

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    ..ich will aber Servos benutzen und die tuens auch nicht...
    Die Bascom-Routinen für Servos nutzen intern einen Timer, aber der kann auch nur richtig funktionieren, wenn die Fusebits richtig auf externen Oszillator gestellt sind, der externe Oszillator richtig funktioniert und in Bascom die richtige Frequenz des Qszillators eingestellt ist.

    Die Einstelungen in Bascom und die Fusebits hast du ja überprüft, da bleibt dann eigentlich nur der Oszillator selbst. Hast du mal überprüft, ob der richtig angeschlossen und die Lötstellen nicht irgendwie unsauber sind?

    Je nachdem was man als Oszillator nimmt, gehören da auch noch Kondensatoren zu. Da habe ich mich vor einiger Zeit mal mit den Kondensatoren vertan und hatte anschliessend dasselbe Problem wie du.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478
    Also,
    wenn man die Config Servos Zeile oder die Enable Interrupt Zeile Weglässt arbeiten die Delay Funktionen exact.

    Gruss

    Involut

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478
    ...wo sieht man den welche Kondensatoren man braucht?

    gruss

    Involut

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478
    OK,
    Prob gelöst.
    Einfach anschliessen und Vernünftiges Netzteil nehmen!!!!!...meinFehler...
    BTW man kann auch AVRs welche bei den Fuses Auf Quarz gestellt sind benutzen.Sprich eine Platine mit OSZI ist universell einsetzbar.

    mfg

    Involut

+ Antworten

Berechtigungen

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