Hi
Was benutzt du als Compiler?
Martin
Hallo
Bin mit den AVRs noch nicht ganz so vertraut. hatte bis jetzt immer mit der ccontrol gearbeitet und möchte nun auf die avrs umsteigen. Nun Suche ich eine Möglichkeit gleichzeitug unterschideliche Frequenzen auszugeben. Also so was wie an pin1 100hz, pin2 150hz, pin3 80hz.
Gibt es da eine Möglichkeit? Benutze einen Mega 16 und benötige 2 bwz. 4 unterschiedliche Frequenzen.
mfg
Omnikron
Hi
Was benutzt du als Compiler?
Martin
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Eine gute Frage, würde mich auch mal interessieren.
Ich hasse Leute die Beiträge schinden wollen................ [-(
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Ich hase 16 jährige AVR-RISC-SUPPORTER, die dumme Kommentare von sich geben ...
@Omnikron
Für dein Problem fallen mir zwei Möglichkeiten ein:
- du nutzt die PWM des ATMegas
- du emulierst eine PWM über das Toggeln eines Pins (das Timing erfolgt durch Timer-Interrupts)
Gruss, Alex
Du nutzt einen Timer, der nach einer besimmten Zeit ein Interrupt auslöst.
(In Bascom siehe Hilfe für CONFIG TIMER)
Die Zeit sollte der kleinste gemeinsame Nenner Deiner Takte sein.
In der Interruptbehandlung zählst Du für jeden Ausgang einen Zähler hoch, bis er den Multiplikator des Nenners erreich, schaltest den Ausgang und beginnst die entsprechende Zählung von vorne.
In Deinem Beispiel:
Gundfrequenz 6000HZ
Zähler für 80HZ = 75
Zähler für 100HZ = 60
Zähler für 150HZ = 40
Habe mir auch schon überlegt die pwm-Ausgänge zu nutzten. Aber ist das bei denen nicht so, dass die eigentliche Frequenz gleich bleibt und ich ledilich die pulswiete innerhalb eines vorgegebenen Bereiches ändern kann?
Brauche die unterschiedlichen Frequenzen um Schrittmotoren gleichzeitig mit unterschiedlichen Geschwindigkeiten zu fahren. Weiß nicht, wie die sich verhalten wenn ich dort eine PWM-Signal draufgebe.
Könnt ihr mir das mit den Timer Interrupts genauer erklären, dass hört sich ganz brauchbar an. Ist der Zählgeschwindigkeit des Timers nicht abängig vom Quarz?
Ich weiß noch nicht welchen Compiler ich benutzten werde, denke aber das ich es zu Beginn einmal mit Bascom probiere. Assembler ist mir für den Anfang zu aufwendig.
Bei den Vorkenntnissen empfehle ich ein Studium des Datenblattes und für den Anfang lediglich das Dimmen von LEDs. Wie du nen Stepper mit PWM ansteuern willst, ist mir ein Rätsel (oder willst du ihn im Mikroschritt-Betrieb betreiben?) ...
Gruss, Alex
Ich habe eine L297 Schaltung für Stepper. Die benötigen ja ein Taktsignal pro Schritt. Wenn ich die Frequenz des Taktsignals ändern kann bestimme ich gleichzeitig damit die Winkelfrequenz des Steppers. Da ich zwei Stepper mit unterschiedlichen Winkelfrequenzen benötige muss der Controller unterschiedliche Frequenzen ausgeben können. Und wie ich das am effektivsten umsetzte wollte ich mit diesem Thread in Erfahrung bringen.
mfg Omnikron
Alles klar. Deinen obigen Angaben zu folge musst du also 2 verschiedene Frequenzen ausgeben (2 Stepper?).
Halten würde ich mich an deiner Stelle an die empfohlene Methodik von "Freiheitspirat", die deine gesuchten Frequenzen aus Sicht des MC ziemlich niedrig sind. Falls du Fragen zur Timerinitialisierung oder den ISR's hast, in C (avrgcc) könnte ich dir helfen.
Gruss, Alex
Lesezeichen