-
        

Ergebnis 1 bis 5 von 5

Thema: Problem mit Tonerzeugung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.07.2011
    Beiträge
    7

    Problem mit Tonerzeugung

    Anzeige

    Hallo!

    Ich bin AVR-Einsteiger und habe folgendes Problem:

    Mit dem unten aufgeführten Programm erzeuge ich einen Dauerton.
    Durch die Verwendung von Timer1 wird dazu kein weiterer Programmschritt
    benötigt, der AVR ist arbeitslos (siehe Roland Walters Lehrbuch S.114).

    Nun möchte ich aber den Ton im weiteren Programm ein- und ausschalten
    können, z.B. im Takte von Morsezeichen. Bis jetzt habe ich noch keine
    saubere Lösung gefunden, wie ich dies realisieren kann.

    Habe bisher versucht, zum ausschalten den PIN PB1 zum ausschalten als
    Eingang zu definieren, aber das funktioniert leider nicht so wie
    gewünscht.

    Frage an die Freaks: Wie kann ich das lösen?

    Danke im voraus,
    Bernd


    '================================================= ===================
    ' Bascom - ATMega 8-16 - Tonausgabe mit Timer 1 (1,0017391 ... kHz)
    ' Speaker an Pin PB1
    '================================================= ===================

    $Refile = "m8def.dat"
    $Crystal = 3686400

    DDRB.1 = 1 ' Pin PB1 auf Ausgang

    TCCR1A = &B01000000 ' Pin PB1 togglen, Kein PWM
    TCCR1B = &B00001010 ' Timer-Reset bei Compare, Clock/8

    Compare 1A = 230 ´ Vergleichswert setzen

    Do 'Der AVR ist vorerst arbeitslos
    nop 'hier soll später der Ton
    Loop 'ein-aus getastet werden

    End

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn man den PIN als Eingang definiert, bleibt der Pullup-Widerstand um eine schwaches Signal zu erzeugen. Um den Ton abzuschalten könnte man z.B. das Tooglen in PCCR1A abstellen.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    19.07.2011
    Beiträge
    7
    Hallo Besserwessi,

    danke für den Tip. Habe inzwischen eine Lösung:
    Löschen desganzen TCCR1A-Registers schaltet den Ton ab.
    Neues Setzen des 6.Bits des Registers schaltet den Ton
    wie gewüsncht wieder ein.

    Gruss,
    Bernd

  4. #4
    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

    Grundsätzlich gibt es wohl zwei Möglichkeiten:

    1.: Der Timer darf den Ausgang nicht ansteuern. Um das Einzustellen muss man im TCCRA1A die Bits 7 und 6 (Zählung beginnt rechts mit 0!) richtig setzen. Deine Einstellung ist 01 und bedeutet, Ausgang umschalten (toggeln) beim Compare-Match. Mit 00 wird der Ausgang entkoppelt und nicht mehr vom Timer angesteuert. Deshalb funktioniert deine Lösung mit TCCR1A=0.

    2.: Den Timer anhalten. Bit 0 bis 2 im TCCR1B-Register ist die Auswahl des Vorteilers (Perscaler), in deinem Fall 010, also Kontrollertakt/8. Wenn mit 000 kein Prescaller gewählt wird, bleibt der Timer stehen. Ein TCCR1B=&B00001000 sollte deshalb den Ton auch stoppen (die verbliebene 1 bedeutet CTC-Mode)

    Gruß

    mic

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

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    19.07.2011
    Beiträge
    7
    Hallo Mic,

    herzlichen Dank für die Super-Erläuterung. So nach und nach fange ich an, die Details zu verstehen. Habe erst vor Kurzem begonnen, mit einem Experimentierboard auf Lötpunkt-Raster-Platine, Roland Walters Lehrbuch durchzuarbeiten, um in die AVR-Technik "hineinzuschüffeln" Wollte damit feststellen, ob mir das Ganze Spass machen würde. Bis jetzt bin ich hoch begeistert, das Thema gefällt mir ausgesprochen gut, und ich habe wohl ein neues Hobby-Kapitel aufgeschlagen. Mittlerweile wage ich mich auch schon an eigene kleine Aufgaben oder Änderungen an den Übungen im Lehrbuch.
    Und im Internet finde ich immer wieder neue Anregungen und zahllose interessante Beiträge.

    Grüsse,
    Bernd

Ähnliche Themen

  1. tonerzeugung mit atmega8 und lautsprecher
    Von Roboman93 im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 08.04.2008, 18:47
  2. Tonerzeugung
    Von Mr-400-Volt im Forum Software, Algorithmen und KI
    Antworten: 2
    Letzter Beitrag: 29.12.2006, 01:01
  3. Tonerzeugung
    Von ricoderrichter im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 05.10.2005, 21:19
  4. Tonerzeugung mit Controllern
    Von ricoderrichter im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 24.08.2005, 17:43
  5. Tonerzeugung / Frequenzerzeugung
    Von Florian im Forum AVR Hardwarethemen
    Antworten: 21
    Letzter Beitrag: 10.09.2004, 14:25

Berechtigungen

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