- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 6 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 52

Thema: 40 Khz Frequenz erzeugen Ultraschallsender

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Anzeige

    E-Bike
    Ist Dir der Timer 1 nicht zu schade für sowas ? Hast Du Timer 2 noch frei ? wenn ja mach folgendes :
    Im Register TCCR2 folgende Bits setzen: CS21, WGM21,COM 20
    Damit stellst Du den Prescaller auf 8,schaltest Du CTC Modus am Timer 2 ein und Toggelst Du OC2 Pin bei jedem Compare Match.
    Im Register OCR2 schreibst Du 25 rein.

    Wenn ich nichts vergessen habe, erzeugst Du am Pin OC2 40 kHz, ganz in Hardware ohne ein Takt für die Erzeugung zu verlieren .
    Ich hoffe, daß Du den OC2 noch frei hast ?

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    @Dirk
    Const Timervorgabe = 65389
    oder was meinst du? Wie bist du auf den Wert gekommen?

    @izaseba
    Es sind noch alle Timer frei.
    Aber denk dran, der Timer soll nur für eine bestimmt zeit aktiviert sein, also brauch ich wohl 2 Timer oder ich muss was hochzählen.

    Ist es sehr unverschämt wenn ich nach nem Codeschnipsel frage?
    RGB-IR-Lampe, Catwiesel Bot, PC Terminal, Schrittmotoransteuerung, Elektroschocker, Stundenplan... www.stefan-reible.de

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    So ich habs einfach mal versuch...

    Code:
    $regfile = "m8def.dat"
    $crystal = 16000000
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    Config Timer2 = Timer , Compare = Clear , Compare = Toggle , Prescale = 8
    Ocr2 = 25
    
    Do
    Loop
    Messe aber ca. 50µS..
    Und hören tu ich ihn auch, aber die Reichweite hat sich deutlich erhöht =)
    RGB-IR-Lampe, Catwiesel Bot, PC Terminal, Schrittmotoransteuerung, Elektroschocker, Stundenplan... www.stefan-reible.de

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    Kann mir den echt keiner helfen?
    Die Formal müsste doch folgendermaßen lauten:

    Output Compare = ( 16000 / 8 ) * 0,025ms = 50

    Aber egal ob ich Ocr2 = 25 oder Ocr2 = 50 einstelle ich sehe keine Veränderung.
    RGB-IR-Lampe, Catwiesel Bot, PC Terminal, Schrittmotoransteuerung, Elektroschocker, Stundenplan... www.stefan-reible.de

  5. #15
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    So hab grad nochmal was anderes probiert.
    Hatte folgenden Text gefunden und für euch mal angepasst.

    Bei 40 KHZ beträgt die Zykluszeit 1 / f = 1 / 40000 = 25µs. Bei einem 50% Duty-Cycle muß du das Signal 12,5 µs einschalten und 12,5 µs ausschalten.

    Timer 0 kann sich bei 16 MHz alle 160 ns um eins erhöhen. Also in 12,5 µs ungefähr 200 mal.

    Der Timer erzeugt beim erreichen von 255 auf 256 einen Overflow Interrupt. Wenn ich jetzt den Timermit 255 - 200 = 55 vorlade, erreichst ich alle 12,5 µs einen Interrupt..

    Code:
    $regfile = "m8def.dat"
    $crystal = 16000000
    $hwstack = 32
    $swstack = 10
    $framesize = 40
    
    Config Timer2 = Timer , Prescale = 1
    
    On Timer2 Tim0_isr
    Enable Timer2
    Enable Interrupts
    
    Do
    Loop
    
    Tim0_isr:
    Tcnt0 = 130
    Toggle PORTB.1
    Return
    Und heraus kam dieses ca. 12µS Gebilde:
    Bild hier  

    Allerding nur wenn ich keine Last am Pin hatte.

    Hätte nicht gedachte das es so schwer ist ne Frequenz zu erzeugen.
    RGB-IR-Lampe, Catwiesel Bot, PC Terminal, Schrittmotoransteuerung, Elektroschocker, Stundenplan... www.stefan-reible.de

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Ich kann mir vorstellen, dass zur Lastansteuerung ein BS170 oder BS250 helfen würde.
    Hattest du den US-Wandler direkt am Port-Pin angeklemmt?

  7. #17
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    35
    Beiträge
    718
    Ja hab ich, aber das muss am AVR liegen, wenn ich über Compare Toggle geht es.
    RGB-IR-Lampe, Catwiesel Bot, PC Terminal, Schrittmotoransteuerung, Elektroschocker, Stundenplan... www.stefan-reible.de

  8. #18
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    Vielleicht mal den Pin als Output definieren?!

  9. #19
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Und Du bist Dir sicher, daß da 40 kHz rauskommt ?
    Ich würde doch reine Hardware Lösung vorziehen, oder zumindest ohne Interrupt auszukommen!
    Wenn es wirklich so ist, daß Basic alle Register + SREG bei ISR auf den Stack legt fehlen Dir ein paar Takte

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  10. #20
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    44
    Beiträge
    689
    Ja Bascom Sichert ne menge register in ner Interruprotiene. Laut Simulator Toggelt der PIN aller 259 Takte also aller 16,1875µs. Macht also nur 30,88kHz.

Seite 2 von 6 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen