Forum: Mikrocontroller und Digitale Elektronik Code der Arduino Befehle


von Hubert (Gast)


Lesenswert?

Moin,

gibt es eine Möglichkeit, zu sehen, was genau  bei den einzelnen 
Arduino-Befehlen (pinMode(), digitalWrite(),...) passiert?

Zum Beispiel beim Befehl tone(Pin, Frequenz), wird ein Rechtecksignal an 
einem ausgewählten Pin generiert. Nun würde mich interessieren, was 
GENAU der Befehl beinhaltet, sodass am Ende ein PWM erzeugt wird.

von Ulrich F. (Gast)


Lesenswert?

Ja, natürlich!
Das liegt alles im Quelltext vor.

Suche im Arduino Programmverzeichnis nach 
"hardware\arduino\avr\cores\arduino"
tone() findest du dann in Tone.cpp

von Mick (Gast)


Lesenswert?

Un Definitionen zu pinMode findest du dann in den Dateien 
wiring_analog.c und wiring_digital.c

von Rudolph R. (rudolph)


Lesenswert?

Das kann man sich aus dem Arduino-Verzeichnis raus suchen.

Oder aber man benutzt das Atmel-Studio für Arduino und macht mal einen 
Rechtscklick auf eine Funktion und wählt "Goto Implementation" aus.

D:\Arduino\arduino-1.0.6\hardware\arduino\cores\arduino\Tone.cpp
1
// frequency (in hertz) and duration (in milliseconds).
2
3
void tone(uint8_t _pin, unsigned int frequency, unsigned long duration)
4
{
5
  uint8_t prescalarbits = 0b001;
6
  long toggle_count = 0;
7
  uint32_t ocr = 0;
8
  int8_t _timer;
9
10
  _timer = toneBegin(_pin);
11
12
  if (_timer >= 0)
13
  {
14
    // Set the pinMode as OUTPUT
15
    pinMode(_pin, OUTPUT);
16
...

: Bearbeitet durch User
von Hubert (Gast)


Lesenswert?

Vielen Dank.

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.