PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bitte um Starthilfe zum Thema PWM und ATMega64



popi
10.11.2005, 19:15
Hallo zusammen,

ich habe mal eine Anfängerbitte:

Wenn ich AVR-Studio öffne, dann kann ich zwischen C-Programmierung und Assembler wählen.

Nun möchte ich über einen Pin des mega64 ein PWM-Signal ausgeben.

Wer ist bereit, mir bitte mal so ein Script zu erstellen, damit ich daraus ein Programm schreiben kann.

Mein Problem besteht darin, das ich kein Ahnung habe, wie man überhaupt anfängt.
Man muss doch sowas wie eine Initialisierung am Anfang machen, oder ?
Muss das Programm in einem bestimmten Abschnitt stehen ?

Schreibe ich es in C oder Assembler ???

Wie schaltet man so ein PWM-Modul ein ???
Steht zwar im Datenblatt, das man bestimmte Register setzen kann, aber wie fängt so ein Programm überhaupt an ???

Würde mich freuen, wenn ich mir sozusagen über den ersten Berg helft.

Quasi eine leere Vorlage für C und Assembler ?!

Danke und Grüße

popi

recycle
10.11.2005, 20:04
Mein Problem besteht darin, das ich kein Ahnung habe, wie man überhaupt anfängt.
Man muss doch sowas wie eine Initialisierung am Anfang machen, oder ?
Muss das Programm in einem bestimmten Abschnitt stehen ?

Muss es dann denn unbedingt gleich Assembler oder C sein?

Mit Bascom Basic gehts auch, da brauchst du nur ein paar Zeilen Code aus der Online-Hilfe zu kopieren.

popi
10.11.2005, 21:53
Muss es dann denn unbedingt gleich Assembler oder C sein?

Mit Bascom Basic gehts auch, da brauchst du nur ein paar Zeilen Code aus der Online-Hilfe zu kopieren.

C oder Assembler wäre da schon besser.

Es soll ein größeres Projekt werden.
Mit Bascom habe ich schon tatsächlich schnelle Programme hinbekommen, aber es wird auf Dauer nicht meine Wünsche erfüllen.

Ich muss mich schon gleich richtig einarbeiten, benötige allerdings die erwähnte Starthilfe.

Also ein HEADER sozusagen!

Wenn es geht, bitte für beide Varianten, bevorzugt jedoch C.

Danke und liebe Grüße

popi

SprinterSB
10.11.2005, 23:02
Wenn ich AVR-Studio öffne, dann kann ich zwischen C-Programmierung und Assembler wählen.

AVR-Studio hat nen C-Compiler dabei???

*zur-atmel-hp-sprint*

...tatsächlich da ist seit neuestem ein avr-gcc integriert *hechel* werd mir das bei Gelegenheit mal runterziehen :-)

Da sind doch wohl Beispiele dabei...?

Die Hauptroutine in C-Programmen ist immer eine
int main (int argn, char *argv[]);

wobei es auf einem µC *etwas*schwer ist, Parameter aus der Kommandozeile zu übergeben. Für deinen Fall ist es daher ein

int main()
{
// Code
}

oder, da wir auch schwerlich Werte an eine shell zurückliefern können, ein

// compile with -ffreestanding
void main()
{
// Code
}

Die Register-Definitionen bekommst du mit
#include <avr/io.h>

und das Zauberwort, um avr-gcc zu sagen, welchen Controller du verwendest, ist -mmcu=XXXXX. Aber das erledigt bestimmt Studio für einen...

askazo
11.11.2005, 06:50
Ah, das Studio 4.12 ist draußen... fein, direkt mal runterladen. :)

Um mit dem Compiler arbeiten zu können, brauchst Du noch ein sogenanntes 'makefile'. Dort stehen verschiedene Definitionen für den Compiler, wie z.B. Prozessortyp, Projekt-Pfad und Optimierungs-Level.

Register kannst Du einfach mit ihrem Namen ansprechen, z.B.
TCCR1A = 0x01;
TCCR1B = 0x0C;

In der main-Funktion solltest Du übrigens nach der Initialisierung eine Endlos-Schleife einbauen, damit der Prozessor nicht einfach aufhört zu laufen.

Gruß,
askazo

popi
23.11.2005, 18:45
Vielen Dank für die Tips!

Werde mich die Tage an die erste Programmierung wagen und es versuchen!

Wie würdet Ihr eine PWM zur Ansteuerung einer LED verwirklichen... in C oder in Assembler ???

Danke und liebe Grüße

popi