Forum: Mikrocontroller und Digitale Elektronik Sinus per Tabelle mit ADuC814


von Firat Güven (Gast)


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!

von Matthias Hertel (Gast)


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.

von Firat Güven (Gast)


Lesenswert?

Ich habe einen Keil Compiler. Danke für den Tipp, mit Excel wirds
einfach g.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.