This is an old revision of the document!


Table of Contents

Pins

Die Pins-Bibliothek ist ein einfacher Weg um mit den AVR digitalen input-output Pins zu operieren. Der Benutzer kann eine Pin-zugehörige Variable erstellen und mit dieser Variable alle Pin Operationen machen. Damit benötigt man keine Registernamen und Bitindizes, wie es in der Direct-Register-Access-Methode vorkommt. Der Pin-Port und Index müssen nur einmal spezifiziert werden, daher sind Änderungen einfach zu vollziehen.

Data types

  • pin
    Datentyp für Pinregister-Adressen und Bitmasken.

Um das effizienteste Programm zu bekommen sollten pin Variablen konstant sein und sollten zu Beginn des Programms initialisiert werden. Das Initialisieren kan mit der Makrofunktion PIN gemacht werden, wobei der erste Parameter der Port ist (großes A, B, C, etc) und der Andere der Pin Index (0 bis 7).Nur existierende Pins und Ports können genutzt werden.

Funktionen

  • void pin_setup_output(pin pin)

Konfiguriert Pin als Output. Parameter:

  • pin - Pin variable.
  • void pin_setup_input(pin pin)

Konfiguriert Pin als Input ohne Pull-up Widerstand. Parameter:

  • pin - Pin variable.
  • void pin_setup_input_with_pullup(pin pin)

Konfiguriert Pin als Input mit Pull-up Widerstand. Parameter:

  • pin - Pin variable.
  • void pin_set(pin pin)

Setzt Output Pin high. Parameter:

  • pin - Pin variable.
  • void pin_clear(pin pin)

Setzt Output Pin low. Parameter:

  • pin - Pin variable.
  • void pin_toggle(pin pin)

Invertiert Output pin state. Parameter:

  • pin - Pin variable.
  • void pin_set_to(pin pin, bool value)

Setzt Output Pin zum gewünschten Zustand. Parameter:

  • pin - Pin Variable.
  • value - Desired state boolean value.
  • bool pin_get_value(pin pin)

Holt Pinwert. Parameter:

  • pin - Pin variable.
  • Return boolean true when pin is high and false when pin is low.
  • bool pin_get_debounced_value(pin pin)

Liest den Pinwert durch den Switch-Debounce-Filter. das Filtern benötigt mind. 8 ms und kann bis zu 100 ms benötigen, jenachdem wann das Bouncing endet. Falls es nicht endet gibt es false aus. Funktionen nutzen Softwareverzögerung. Parameter:

  • pin - Pin variable.
  • Return pin boolean value - true when pin is high and false when pin is low or undetermined.

Beispiel

Beispiel um einen Pinwert zu erhalten und zu setzen. Pin PC0 Wert wird invertiert und an Pin PC3 angeschlossen.

#include <homelab/pin.h>
 
pin output_pin = PIN(C, 3);
pin input_pin = PIN(C, 0);
 
int main(void)
{
	bool value;
 
	// Konfiguriert Pin als Output-Pin
	pin_setup_output(output_pin);
 
	// Konfiguriert Pin als Input Pin mit Pull-up
	pin_setup_input_with_pullup(input_pin);
 
	// Endlosschleife
	while (true)
	{
		// Getting an input pin value
		value = pin_get_value(input_pin);
 
		// Setting an output pin value
		pin_set_to(output_pin, !value);
	}
}
de/software/homelab/library/pin.1289157359.txt.gz · Last modified: (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0