www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega8 mit 12Mhz, Interrupts mit 100Hz möglich?


Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schafft der das? ziel ist das erzeugen einer 100Hz zeitbasis mit dem 16 
bit timer. der µC soll nach jedem interrupt 2 oder 3 ADC werte auslesen 
(wandeln), eine sinuskurve (aus tabelle) nach diesen werten skalieren 
und einen 8bit timer für PWM mit dem errechneten wert speisen. getaktet 
ist er mit 12Mhz um auf die erforderliche PWM-frequenz zu kommen. sollte 
doch also genug rechenleistung zur verfügung stehen, oder? bin mir nicht 
100pro sicher, deswegen die frage.

Autor: hdd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
100Hz sollten wirklich kein Problem sein solange deine Interruptroutine 
weniger als 120.000 Takte braucht.
Was meinst du mit "sinuskurve skalieren"? Solange das keine aufwändigste 
Berechnung ist geht das alles damit.

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die ISR will ich so kurz wie möglich halten, also nur ein flag setzen 
welches in der hauptschleife abgefragt wird bzw. die hauptschleife aus 
einer warteposition herausholt und einen durchlauf startet.

die sinuskurve möchte ich als 8 bit kurve fest in den flash legen 
(0..255). der AVR soll dann 2 oder 3 werte (obere und untere 
PWM-tastverhältnisgrenze und einen wert für die frequenz (0.1-2Hz 
vielleicht, unkritisch) per ADC einlesen. die obere tastverhältnisgrenze 
lass ich vielleicht noch weg, die wird wohl fast immer 100% betragen. 8 
bit ADC auflösung reicht für alle drei werte.

1. den frequenzwert ermitteln nach wieviel 100Hz-takten in der 
sinustabelle eins weiter gezählt werden soll, wenn nicht erreicht 2.+3. 
springen

2. oberen und unteren grenzwert einlesen und den sinuskurven-wert aus 
der tabelle in den bereich dazwischen einpassen

3. errechneten PWM-wert in das timer-register schreiben

4. wieder schlafen legen...

inwieweit sleep modes wegen der laufenden timer was bringen weiß ich 
nicht, wahrscheinlich nicht allzu viel.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sehr schick, aber absoluter overkill für das was ich brauche!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ben _ schrieb:
> sehr schick, aber absoluter overkill für das was ich brauche!


Aber du kannst dir die Technik der Signalerzeugung ansehen.
Deine Beschriebung dessen, wie du dir das vorstellst, klingt ein wenig 
.... abenteuerlich.

Autor: Ben ___ (burning_silicon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
najo es sind halt keine besonders hohen anforderungen, die an das signal 
gestellt werden. die in einem echten funktionsgenerator verwendeten 
routinen dürften um ein gutes stück besser sein als ich sie brauche. ich 
brauche auch kein LCD oder irgendwelche benutzerführung... von der 
programmierung her sollte mein miniprojekt eher einfach sein. ich denke 
das krieg ich hin, wenn der atmega das unter meinen rahmenbedingungen 
schafft (wo erstmal niemand was gegenteiliges geschrieben hat). die 
12MHz hat der auch nur weil ich 45kHz PWM-frequenz brauche, vermutlich 
würde schon ein drittel reichen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.