-
        

Ergebnis 1 bis 10 von 10

Thema: Atmega8 genau takten

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    17.10.2009
    Beiträge
    62

    Atmega8 genau takten

    Anzeige

    Hallo,

    Am Anfang eines jeden Programmes taktet man ja den Chip mit z.B.:

    $crystal = 8000000

    nun ist meine Frage, wie kann ich den mega8 genau so takten, dass er im Mikrosekundentakt läuft.
    Ich habe nämlich eine LED-Matrix gebaut und mir dazu errechnet, dass ich jede LED alle 652 mikrosekunden geschaltet werden muss, damit das ganze Bild 25-mal in der Sekunde erneuert werden kann.
    Die Rechnung hat sich so ergeben:
    (Anmerkung: Meine Matrix ist 8x8 groß)

    1 Sekunde entspricht 1000000 Mikrosekunden(µs)

    (1000000/25)/64 = 625


    Ich bin mir auch nicht ganz sicher, ob die Rechnung aufgeht...

    Ist der/die/das crystal so richtig definiert/initialisiert?

    Gruß nxtman
    Meine Website: http://nxtman.net/

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Am Anfang eines jeden Programmes taktet man ja den Chip mit z.B.:

    $crystal = 8000000
    Das ist ein weit verbreiteter Irrtum!
    Die $Crystal-Direktive hat keinen Einfluss auf die Taktfrequenz des Controllers! Sie ist "nur" dazu da um Bascom mitzuteilen, mit welcher Taktfrequenz der Controller läuft. Das ist für alle zeitbezogenen Befehle sehr wichtig (wie z.B. waitms 100), denn Bascom muss ja ausrechnen, wieviele Zyklen z.B. für 100 Millisekunden vergehen müssen. Stimmt die Angabe bei $Crsytal mit der tatsächlichen Taktfrequenz nicht überein, kommt bei zeitbezogenen Befehlen natürlich nur Unsinn raus.

    Die Taktfrequenz stellst Du in den Fusebits ein, und da gibt es für den Mega8 die Möglichkeit, ihn mit dem eingebauten RC-Oszillator mit einer Taktfrequenz von 1MHz zu betreiben. Dies ist sogar der Auslieferungszustand, allerdings ist der RC-Oszillator naturgemäß nicht besonders genau. Aber wenn´s auf ein paar Prozent Abweichung nicht ankommt, leistet er gute Dienste. Den RC-Oszillator kann man außerdem auch auf 2, 4 und 8 MHz einstellen

    Wenn´s eine "besondere" Taktfrequenz sei soll, muss man den Controller entweder mit einem externen Quarz betreiben, oder mit einem externen Taktsignal (z.B. aus einem Quarzoszillator) versorgen. Infos dazu gibt´s im Datenblatt!

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    17.10.2009
    Beiträge
    62
    ok, gut zu wissen ^^
    Jetzt weis ich auch, warum bei den Soundausgaben mit nem Piepser immer nur Mist raus kam...

    Danke für die Antwort, werds Morgen mal Testen
    Meine Website: http://nxtman.net/

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Du musst nur aufpassen, dass auch wirklich ein externer Quarz bzw. ein externes Taktsignal vorhanden ist, wenn Du diese Option mit den Fusebits wählst, denn sonst hat der Controller keinen Takt mehr. Und ohne Takt kannst Du auch nichts mehr an den Fusebits ändern - das wäre also quasi eine Sackgasse. Also wähle nur Taktquellen, die auch real existieren

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.557
    ... ohne Takt kannst Du auch nichts mehr an den Fusebits ändern - ... quasi eine Sackgasse ...
    Aus der Sackgasse gibts einen einfachen Weg (klick mal) der genau auf Einsteiger zugeschnitten ist.

    ... alle 652 mikrosekunden geschaltet werden muss ... nicht ganz sicher, ob die Rechnung aufgeht ...
    Mit dem Controller im Lieferzustand 1 MHz Takt (8 MHz interner Takt, mit internen Teiler) hast Du also 625 Maschinenzyklen für diese Arbeit. Da könnte es sein, dass sich der Controller dabei etwas langweilt . . .
    Geändert von oberallgeier (20.12.2012 um 09:23 Uhr)
    Ciao sagt der JoeamBerg

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    17.10.2009
    Beiträge
    62
    jetzt besteht das Problem, dass ich kein externes Quarz angeschlossen habe, was kann ich machen?
    Meine Website: http://nxtman.net/

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    jetzt besteht das Problem, dass ich kein externes Quarz angeschlossen habe, was kann ich machen?
    Hast du denn schon irgendwelche Fuses verändert? und wenn ja, auf was hast du eingestellt?

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    17.10.2009
    Beiträge
    62
    Ich habe die fuses auf 1MHz eingestellt. Geht schon
    Meine Website: http://nxtman.net/

  9. #9
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Zitat Zitat von NXTman Beitrag anzeigen
    Ich habe die fuses auf 1MHz eingestellt. Geht schon
    Also internal RC-Clock 1Mhz? Also funktioniert es? Wolltest du nicht zu Threadanfang 8Mhz haben?
    Grüße
    Thomas

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    17.10.2009
    Beiträge
    62
    ja, "geht schon" im Sinne von "Ich weis wie ichs einstellen kann"
    Meine Website: http://nxtman.net/

Ähnliche Themen

  1. ATmega644P Millisekunde genau?
    Von HeyHey im Forum AVR Hardwarethemen
    Antworten: 7
    Letzter Beitrag: 18.03.2011, 20:10
  2. IR LED takten
    Von harry3 im Forum Asuro
    Antworten: 7
    Letzter Beitrag: 19.08.2007, 09:55
  3. Geschwindigkeitsmessung wie genau?
    Von TobiasBlome im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 07.08.2007, 16:57
  4. PIC mit RC-Oszillator statt Quarz takten?
    Von HotWire im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 21.01.2007, 19:26
  5. Zeit genau messen
    Von Johannes G. im Forum C - Programmierung (GCC u.a.)
    Antworten: 18
    Letzter Beitrag: 25.08.2006, 13:03

Stichworte

Berechtigungen

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