-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: 1 MHz Tackt erzeugen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.03.2004
    Beiträge
    121

    1 MHz Tackt erzeugen

    Anzeige

    Hallo, ich habe eine schaltung mit einem M16 und einem Quart zwischen 10 und 16 mhz entwickelt. Mein Problem ist, das ich einen Takt von 1mhz an Portx.5 erzeugen muß. Wie könnte ich das erledigen ? Währe für jeden Tipp dankbar !!!

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    Nimm doch einen Oszillator (anstatt quarz) und Teiler /16

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    erzeuge den Takt mit einem 1Mhz-Quarz und einem 74HC00
    http://elektronik-kompendium.de/publ...uarz-oszil.htm

    alternativ kannst Du natürlich bei einem 16Mhz Mega16 mit BASCOM/Assembler eine Schleife bauen und bei 16 Mhz die 16 Takte verteilen auf:
    loop:
    SBI x,5 '2 Takte SET BIT in I/O Register
    nop '1 Takt
    ...
    nop '1 Takt
    CBI x,5 '2 Takte CLEAR BIT in I/O Register
    nop '1 Takt
    ...
    JRMP loop '2 Takte
    ...leider ist dann der Mega16 voll
    also nimm gleich einen 74HC00

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Man könnte es übrigens auch über eine Art Hardware PWM quasi nebenbei erledigen lassen.

    Man muss eigentlich nur den richtigen Timermode nutzen.
    Und die entsprechenden Register entsprechend setzen (den Topwert & den Comparewert)

    Grüße,
    da Hanni.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    Für PWM wird die Zeit nicht reichen ... der Ausgangsport muss bei 16Mhz immerhin alle 8 Takte togglen.

    Vorschlag: Timer0 -> Clear Timer on Compare Match (CTC) Mode (WGM01:0 = 2)
    For generating a waveform output in CTC mode, the OC0 output can be set to toggle its logical level on each compare match by setting the Compare Output mode bits to toggle mode (COM01:0 = 1).
    The waveform generated will have a maximum frequency of fOC0 = fclk/2 when OCR0 is set to zero (0x00).
    das wären dann 8Mhz an OC0 bei 16Mhz Taktfrequenz...

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Was ist daran nun anders als an Hannis Vorschlag?

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Du kannst doch die 1MHz direkt von der Takt-Treiberstufe des AVR abzweigen. Musst nur die Fuses passen einstellen. Falls das ganze abschaltbar sein soll, machst einfach nen Analogschalter oder so dazwischen, der über nen µC-Port an/ausschaltbar ist.
    Disclaimer: none. Sue me.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    @e-fan
    Ich wollte dem Einsteiger etwas konkretere Hinweise gegeben, da er im Bascom-Handbuch unter PWM nicht zu Ziel kommen wird. Leider kennt Bascom den CTC-Modus nicht, deshalb mein Auszug aus dem M16-Manual.

    ...übrigens unterscheidet das M16-Manual zwischen CTC und PWM

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Die Frage war n bissel neckisch gemeint!
    CTC ist nur eine Abkürzung eines PWM-Modus (Clear Timer on Compare Match).
    Hier wird der Timer bei erreichen des OC-Registerwertes auf 0 zurückgesetzt und der entsprechende OC-Ausgang umgeschaltet (toggle).
    Ich denke mal das man Bascom nicht unbedingt alles abverlangen kann zumal man die Register sehr leicht selber einstellen kann in dem man die die Abkürzung des Registers als Byte oder Word behandelt (Beispiel: OCR1B=xyz oder TCCR1A= &B...).
    Ich hab am Anfang auch ziemlich derbe gegrübelt zumal ich in Sachen µC und Programmierung in Basic absoluter Autodidakt bin.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.03.2004
    Beiträge
    185
    Wie ich schon sagte:
    Atmel bezeichnet im Manual nur das Signal als PWM, das verschieden lange Pulsbreiten hat (kein CTC), wenn es frei läuft.
    Du betrachtest (wie andere auch) z.B. auch den Oscillator des Atmega als eine Sonderform der PWM (gleiche Pulsbreite).

    soweit zur Theorie - leider ist der anfragende Mr-400-Volt untergetaucht

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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