- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: Tonerzeugung mit Timer funktioniert nicht wie gewollt

  1. #11
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.653
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hi Patrick,

    schön wenns jetzt funktioniert.
    Zitat Zitat von Patrick91
    ... oder hat noch jemand eine andere idee? ...
    Ich habe (m)einen Tongenerator mit meiner Standard-wait-Funktion geschrieben . . . die ich vor Ewigkeiten irgendwo abgekupfert hatte. (Zweck in diesem Fall: der Controller wartet auf ein high oder low an einem Pin und startet bei erkanntem Level einen kurzen Ton - das Ganze dient dazu, SEHR kurze Spikes zu erkennen - ohne dauernd aufs Oszi schauen zu müssen). Diese Funktion habe ich als Millisekunden- und manchmal (beim 20-MHz-Quarz) als Mikrosekunden-routine. Allgemein bekannter Nachteil: der Controller tut sonst "nix" - was nicht ganz stimmt: z.B. Interrupts muss er trotzdem arbeiten - dabei stimmt dann natürlich die Routinendauer nicht mehr.
    Code:
    /* =================================================================================
      *** Aufgabenstellung : Tongenerator am baby orangutan B-168-20MHz
            Der Pin PD7 am "linken, unteren" Eingang der pololu-Platine wird auf
            Pegel 1 (ca. + 5V) überwacht. WENN dieser Pegal ansteht, dann wird am
            Port PB2 (links, fünfter von oben)  ein Signal von etwa 1000 Hz ausgegeben.
            ...
            Ton: aktuell (11. Jan. 10) ca. 2,5 kHz bei "990" in waitms             */
    // =================================================================================
    // =====  Subroutinen  =============================================================
    // =================================================================================
     
    // =================================================================================
    // =================================================================================
    /*### Programm pausieren lassen  !! Der Pausenwert ist nur experimentell !*/ 
    void waitms(uint16_t ms) 
    { 
       for(; ms>0; ms--) 
       { 
          uint16_t __c = 4000; // Dieser Wert bestimmt die Laufdauer ! ! !
          __asm__ volatile ( 
             "1: sbiw %0,1" "\n\t" 
             "brne 1b" 
             : "=w" (__c) 
             : "0" (__c) 
          ); 
       } 
    } 
    // =================================================================================
    // =====  ENDE    Subroutinen  =====================================================
    // =================================================================================
    Ciao sagt der JoeamBerg

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.05.2005
    Ort
    Berlin
    Beiträge
    316
    Die Tonerzeugung könntest du wesentlich einfacher mit Timer2 im CTC Mode haben.
    Du müsstest nur den Compare Match Wert entsprechend der gewünschten Frequenz setzen.
    Den Timer lässt du so lange laufen, wie du den Ton ausgeben möchtest.

  3. #13
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.653
    Zitat Zitat von lokirobotics
    Die Tonerzeugung könntest du wesentlich einfacher ... haben ...
    Nein. Denn das ziemlich alte Programm läuft, ist im Controller, die Schaltung funktioniert - also wäre alle neue Mühe nur mehr Arbeit. Die Timermethode habe ich stellenweise auch. Aber die zitierte Fragestellung war ja anders:
    Zitat Zitat von Patrick91
    ... oder hat noch jemand eine andere idee? ...
    Ciao sagt der JoeamBerg

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.05.2005
    Ort
    Berlin
    Beiträge
    316
    Sry, aber ich meinte Patrick91

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Timer Overflow funktioniert nicht [erledigt]
    Von robo junior im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 19.11.2008, 17:15
  2. BackLED blinken nicht wie gewollt??
    Von MCClane im Forum Asuro
    Antworten: 1
    Letzter Beitrag: 04.10.2006, 15:47
  3. For-Next-Schleife läuft nicht so wie gewollt :(
    Von jagdfalke im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 24
    Letzter Beitrag: 04.07.2005, 16:20
  4. Timer funktioniert nicht
    Von barlip im Forum C - Programmierung (GCC u.a.)
    Antworten: 10
    Letzter Beitrag: 05.03.2005, 12:33
  5. RC5 mit Timer kombinieren funktioniert nicht
    Von Enrico3 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 07.01.2005, 18:00

Berechtigungen

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

Solar Speicher und Akkus Tests