Rechteckgenerator

vor 1 year 15 weeks von MrJoney

Hallo an alle Freeduino mitglieder

ich habe seit ein paar tagen ein Problemm ich mus mit dem Arduino 3 Rechtecksigale erzeugen und schaffe das nicht ganz

hier erst mall meinen code

void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(13, OUTPUT);
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
}

void loop() {{

for (int x=0; x <450; x++) {

digitalWrite(13, HIGH); // pin 13 on
digitalWrite(0, LOW); // pin 0 off
delayMicroseconds(63);

digitalWrite(13, LOW); // pin 13 off
digitalWrite(0, HIGH); // pin 0 on
delayMicroseconds(63);

}
digitalWrite(1, HIGH); // pin 1 on
}
for (int x=0; x <450; x++) {

digitalWrite(13, HIGH); // pin 13 on
digitalWrite(0, LOW); // pin 0 off
delayMicroseconds(63);

digitalWrite(13, LOW); // pin 13 off
digitalWrite(0, HIGH); // pin 0 on
delayMicroseconds(63);

}

digitalWrite(1, LOW); // pin 1 off
}

nun kriege ich es hin das an ausgang pin 13 und 0 ein Rechteck 7 KHz rauskommt aber ist es leider nicht exzakt gegenpfasig was kann ich hier bei ändern
ausgang 1 sollte 10 hz bekommen aber da bin ich immer bei 24 hz

vll kann mir jemand einen typ in die richtige richtung geben das wäre super
mfg MrJoney

Ähnliche Posts

1 Antwort auf “Rechteckgenerator ”


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
  1. madworm sagt:

    Ich messe an ausgang #1 7.81Hz.

    Die zeitverzoegerung von 3.80µs is auf die langsamheit von digitalWrite() zurueckzufuehren. Diese funktion mach allerlei checks und so weiter.

    Wenn du es schnell brauchst, dann geht KEIN weg an direkten register manipulationen vorbei. Also so etwas wie

    PORTD |= _BV(PD1);

    Nur als beispiel versteht sich.

    Wenn das getan wird, dann ist die verzoegerung nur noch 122ns.

    Login or register to post comments