Sinus per Tabelle mit ADuC814

Gast #269780
Lesenswert?
• ▲
▼
Ich will einen sinus für ein Schwinggerät erzeugen mit dem ADuC814
(Analog Devices). Habe leider noch nie mit C Programmiert allerdings
nur mit C++. Wie kann ich herausfinden wie die Hardware einstellungen
für den uC mache (Digital-Analogwandler, Taktrate, I/O Ports,
Timerinterrupts etc.).
y(i)=A.sin(2*pi*(f/fa)*i)
wie mache ich am besten eine Tabelle für die oben gennante formel.
100-160 wete pro periode würde reichen und das Gerät soll 1-200Hz
schwingen
Danke!
Gast #269781
Lesenswert?
• ▲
▼
Mit welchem Compiler arbeitest du denn?
Die Tabelle wuerde ich in Excel erstellen, und dann in ein
Konstantenarray uebertragen. (z.B.: const unsigned short dactab[] =
{0x0000 , ..., 0xFFFF};
Folgendes musst du initialisieren: Timer-Interrupt mit dem gewuenschten
Interval (also zb.: 200Hz * 100 Werte = 1/20000 s), da wirds evtl. schon
knapp bei deinem 8051er mit der Zeit.
Den DAC setzt du in diesem Timer mit Hilfe der Werte aus der Tabelle.
DACL=(unsigned char)dactab[i];
DACH=(unsigned char)(dactab[i]<<8);
'i' ist eine globale Variable die im Timer von 0 nach sizeof(dactab)
zaehlt.
Welche Register du fuer DAC und Timer initalisieren musst solltest du
im Datasheet nachlesen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.