Forum: Mikrocontroller und Digitale Elektronik Arduino Rechtecksignal


von Toni N. (ich3)


Lesenswert?

Hallo Forum,
ich habe (wahrscheinlich) ein Verständnisproblem, und zwar: wenn ich wie 
im Angehangenden Sketch ein Rechtecksignal ausgeben will das 10 µS lang 
ist, dann habe ich eine 15µS lange Flanke. Warum kann der µC nicht so 
schnell, der Taktet doch mit 16 Mhz???

LG

von Felix C. (felix_c13)


Lesenswert?

Wie willst du das generieren? Was für ein Arduino? Zeig mal deinen COde.

von Werner (Gast)


Lesenswert?

Toni N. schrieb:
> ... wenn ich wie im Angehangenden Sketch ein Rechtecksignal ausgeben
> will das 10 µS

Da hängt nichts. Und was haben Rechtecksignale mit Leitfähigkeit zu tun?
https://de.wikipedia.org/wiki/Siemens_(Einheit)

von Arduinoquäler (Gast)


Lesenswert?

Toni N. schrieb:
> Angehangenden Sketch

Ich sehe nix.

Ausserdem heisst es

"im angehängten Sketch"  oder  "im anhängenden Sketch"

Deutsche Sprache - schwäre Sprache.

von Fritz G. (fritzg)


Lesenswert?

Ich rate mal: Du hast den Pin nicht auf Ausgang gesetzt?

von Toni N. (ich3)


Lesenswert?

Ja das passiert mir jedes Mal das ich den Anhang vergesse :D Bei Google 
Mail gibt es ja noch so eine Funktion das er dich erinnert wenn im in 
der E-Mail Anhang steht man auch was anhängen soll:D

Code:
#include <TimerOne.h>

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

  Timer1.initialize(15); // set a timer of length 100000 microseconds 
(or 0.1 sec - or 10Hz => the led will blink 5 times, 5 cycles of 
on-and-off, per second)
  Timer1.attachInterrupt( timerIsr ); // attach the service routine here
}

void loop()
{
  // Main code loop
  // TODO: Put your regular (non-ISR) logic here
}

/// --------------------------
/// Custom ISR Timer Routine
/// --------------------------
void timerIsr()
{
    // Toggle LED
    digitalWrite( 13, digitalRead( 13 ) ^ 1 );
}

von Arduinoquäler (Gast)


Lesenswert?

Toni N. schrieb:
> Code:

Warum hältst du duch nicht an die Regeln wie sie beim
Posten jedes Beitrages jedesmal ausführlich dargelegt werden?

von Werner (Gast)


Lesenswert?

Toni N. schrieb:
> Ja das passiert mir jedes Mal das ich den Anhang vergesse

Und jetzt hast du auch noch die Code- oder C-Tags vergessen. Kann Google 
einen daran auch erinnern?

Das macht das Lesen nicht schöner, insbesondere wenn überlange 
Kommentarzeilen enthalten sind.

von Werner (Gast)


Lesenswert?

Toni N. schrieb:
> ... dann habe ich eine 15µS lange Flanke.

Falls du mit Flankenlänge in Wirklichkeit Impulsdauer und mit µS 
Mikrosekunden einst, liegt es vielleicht an den von dir verwendeten 
Bibliotheksfunktionen.

Toni N. schrieb:
> digitalWrite( 13, digitalRead( 13 ) ^ 1 );

Rufe mal direkt
1
digitalWrite( 13,HIGH );
2
digitalWrite( 13,LOW);

Du wirst dich wundern, wieviel Zeit ein µC trotz 16MHz Takt bei 
"geeigneter" Programmierung damit verbringen kann.

von Dieter F. (Gast)


Lesenswert?

Toni N. schrieb:
> Timer1.initialize(15)

Wenn Du 15 µS einstellst ...

von Werner (Gast)


Lesenswert?

Werner schrieb:
> Falls du mit Flankenlänge in Wirklichkeit Impulsdauer ...

korr.
Es muss natürlich heißen "Impulsverzögerung"

von Dieter F. (Gast)


Lesenswert?

Ah, hat scheinbar geklingelt ... :-)

von Frank (Gast)


Lesenswert?

Wieso nimmt man da nicht gleich eine PWM Einheit? Für sowas ist die 
prädestiniert.

CPU Last =0, ohne großen Jitter durch andere Interrupts u.ä.

von Arduinoquäler (Gast)


Lesenswert?

Frank schrieb:
> Wieso nimmt man da nicht gleich eine PWM Einheit? Für sowas ist die
> prädestiniert.

"Man" könnte schon, aber "er" warscheinlich nicht. Denn er hat
nur das Arduino-Minimalbeispiel kopiert und seine eigene
Zahl hineingeschrieben.

Was dabei vorgeht und was nicht so gut läuft hat er bei Weitem
nicht verstanden.

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.