Go Down

Topic: Ich brauche eine Ausgangsfrequenz von 2MHz, kann mir da jemand helfen? (Read 601 times) previous topic - next topic

ref110

Hallo,

ich benötige eine feste Ausgangsfrequenz von 2MHz. Allerdings benötige ich für SPI die Pins 10 bis 13.

Ich habe bereist folgenden Code aber ich weis nicht was ich daran ändern muss, dass dieser auch mit einem anderen Pin funktioniert:

Code: [Select]

const int freqOutputPin =11; 
const int prescale  = 1;
const int ocr2aval  = 3;

const float period    = 2.0 * prescale * (ocr2aval+1) / (F_CPU/1.0e6);


const float freq      = 1.0e6 / period;

void setup()
{
    pinMode(freqOutputPin, OUTPUT);
    Serial.begin(9600);


    TCCR2A = ((1 << WGM21) | (1 << COM2A0));


    TCCR2B = (1 << CS20);

   
    TIMSK2 = 0;

    OCR2A = ocr2aval;

    Serial.print("Period    = ");
    Serial.print(period);
    Serial.println(" microseconds");
    Serial.print("Frequency = ");
    Serial.print(freq);
    Serial.println(" Hz");
}


void loop()
{
   
}



Es wäre also super wenn entweder jemand diesen Code ändern könnte, dass ich auch auf einem anderen Pin 2MHz ausgeben kann oder mir jemand ein anderes Programm schreiben kann mit dem ich eine feste Ausgangsfrequenz von 2MHz ausgeben kann.

Danke

thewknd

mit der Funktion tone() müsste das gehen
http://arduino.cc/en/Reference/Tone
duemilanove / OSX & WIN
Arduino & Teensy: http://bit.ly/13rbdtQ

uwefed


mit der Funktion tone() müsste das gehen
http://arduino.cc/en/Reference/Tone

Tone kann keine so hohen Frequenzen erzeugen.
Quote
frequency: the frequency of the tone in hertz - unsigned int

Ein unsigned int hat maximal eine größe von 65535.

@ref110
Für was brauchst Du diese Frequenz?
Ist ein Quarzoszillator nicht die einfachste Lösung?
Grüße Uwe

Udo Klein

Der Code erzeugt die Frequenz direkt aus einem Timer. Das geht nicht mit allen Pins sondern nur mit denen die direkt von Timern versorgt werden. Und dann hängen die Details noch davon ab welcher Timer mit welchem Pin verbunden ist. Findet sich alles im Datenblatt oder hier: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Die_Timer_und_Z%C3%A4hler_des_AVR
Check out my experiments http://blog.blinkenlight.net

Kalli

Vielleicht geht auch ein vom Arduino programmierter Oszillator ...

http://www.watterott.com/de/DS1077-Breakout

Eine sehr preiswerte Variante.

Gruss Kalli


Go Up