Forum: Compiler & IDEs Pin Pulsen


von Frank (Gast)


Lesenswert?

Hallo
Gibt es in AVR GCC auch einen Befehl wo man einen Pin eines Ports nur
kurz pulsen kann? Also Pulse Portb Pin 3 oder so?
Frank

von Peter D. (peda)


Lesenswert?

Warum denn für alles und jedes immer nen extra Befehl ?

C ist ne Programmiersprache, schreib Dir doch einfach ne Funktion
dafür:
1
void pulse_pd3(void)
2
{
3
  PORTD |= 1<<PD3;
4
  PORTD &= ~(1<<PD3);
5
}

Bei 1MHz ist der Puls 2µs lang.


Peter

von Εrnst B. (ernst)


Lesenswert?

Bei neueren AVR's kann man auch durch Setzen des Bits im PINx Register
(eigentlich das Lese-Register) den Portzustand ändern:
1
   void pulse_pd3(void)
2
   {
3
      PIND = 1<<PD3;
4
      PIND = 1<<PD3;
5
   }

Obs schneller ist musst Du selber rausfinden, einfach den erzeugten
ASM-Code anschauen und mit der OP-Code tabelle im Datenblatt die Anzahl
der Takte berechnen.

/Ernst

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.