Sie sind vermutlich noch nicht im Forum angemeldet - Klicken Sie hier um sich kostenlos anzumelden Impressum 
Sie können sich hier anmelden
Dieses Board hat 1.750 Mitglieder
48.912 Beiträge & 5.246 Themen
Beiträge der letzten Tage
Anzeige
 Fahrtregler als Open Source Projekt - Eine neue Antwort erstellen Ihre Schreibrechte
Benutzername:
 
Betreff
 

Beitrag:
[goto={{url}}][/goto]
[b][/b]
[i][/i]
[u][/u]
[code][/code]
[quote][/quote]
[spoiler][/spoiler]
[url][/url]
[img][/img]
[video][/video]
Smileys
smile
smile2
zunge
idee
frage
mad
sad
wink
frown
crazy
grin
hmm
laugh
rolling_eyes
oh2
shocked
cool
Daumenhoch
[mail][/mail]
[pre][/pre]
Farben
[rot][/rot]
[blau][/blau]
[gruen][/gruen]
[orange][/orange]
[lila][/lila]
[weiss][/weiss]
[schwarz][/schwarz]
flash

Im Beitrag anzeigen:

 In Antwort aufDiesen Beitrag zitieren
 RE: Fahrtregler als Open Source Projekt

Hi Sven,

das sieht ja schon super aus . Habe gerade einmal durch gerechnet, damit wir auf eine PWM Frequenz von 75Hz kommen können.
Also laut deinem Source Code wird der Controller ja mit 8000000Hz getaktet. Das heißt, ein Takt dauert so 125ns. Um die Frequenz variabel zu machen, würde ich den 16bit Timer1 verwenden. Da kann man durch das ICR-Register den Topwert selber festlegen und so die spätere Frequenz bestimmen. Die PWM würde ich über die Register OCR1A und OCR1B erzeugen (Non-inverting Mode).
Um also eine PWM Frequenz von 75Hz zu erhalten muss folgender Topwert für das ICR-Register errechnet werden:

(1/75Hz)/(1/(8000000Hz/1024)) = 104,16 (Topwert für das ICR-Register)

Ich habe den Wert bewusst so klein gewählt, da zum Auswerten des Servosignals (max. ti=2ms, T=20ms) der Timer0 dann verwendet wird. Mithilfe eines externen Interrupts (INT0 PB2) wird das Signal gemessen.
Bei einer steigenden Flanke wird der Timer0 gestartet oder zurück gesetzt. Nun läuft Timer0 und er erhöht bei jedem Overflow einen weiteren Zähler. Dieser wird dann bei einer fallenden Flanke an INT0 ausgelesen. Der Timer0 und der Zähler werden nach dem Auslesen zurückgesetzt. Nun Um möglichst nah an dem Topwert des Timer1 zu liegen, würde ich dort folgende Einstellungen des Timer0 verwenden:

(2*10^-3)/(1/(8000000/256)) = 62,5

Der Timer0 wird da mit einem Vorteiler von 1 getaktet, also direkt mit dem Systemtakt. 2ms für den max. ti entsprechen dann 62,5 Zähler.

Um das ganze jetzt auf das maximale des Timer1 anzupassen muss der Messwert des Servosignals noch mit 1,6 multipliziert werden (104,16/62,5 = 1,6).

So, so viel dazu. Habt Ihr da noch andere Vorschläge zur Servosignalmessung?

Viele Grüße

Hendrik



hendrik.s, 05.05.2012 18:13
Fotos hochladen

Zugriffsanfrage von


Diese Seite versucht auf deinen addPics.com Account zuzugreifen.
Aus Sicherheitsgründen, erlaubt addPics.com nur den Zugriff von autorisierten Webseiten. Wenn du dieser Webseite vertraust, kannst du mit einem Klick auf den folgenden Link, den Zugriff erlauben.

autorisieren Aktualisieren

Bitte logge dich mit deinem bereits existierenden Account auf addPics.com ein.


Jetz einloggen!
Neu laden!


Dem Beitrag angehängte Bilder


- noch keine Bilder angehängt.

oder ein bereits hochgeladenes diesem Beitrag hinzufügen.
Nach Ordner filtern: Ordner bearbeiten
  • Mit deiner Emailadresse, verwaltest du all deine Bilder auf addPics.com
  • diese Nutzung von addPics.com ist für dich kostenlos!
  • weitere Informationen findest du hier


Mit dem Upload gebe ich mein Einverständnis, dass meine E-Mail von addPics.com für werbliche Zwecke zum Erhalt von Newslettern genutzt wird. Die E-Mail wird nicht an Dritte weitergegeben und der Newsletter kann jederzeit per E-Mail an unsubscribe@addpics.com abgemeldet werden.

Mit anderen addPics.com Account anmelden
Anzeige

Xobor Forum Software von Xobor
Einfach ein eigenes Forum erstellen
Datenschutz