Hallo zusammen
gerade arbeite ich an einer Schieblehren-Anzeige.
Um einen Korekturwert mittels Drehencoder einzugeben habe ich im Netz nach einem Sketch gesucht un diesen gefunden.
jetzt sind mir die Funktionen der einzelnen Programmteile nicht ganz klar.
Könntet Ihr mir eventuell beim Beschreiben einiger Befehlen (Funktionen) helfen?
Dieser Sketch kann zurzeit nur vorwärts zählen ( Impulseingang Pin 2)
abhängig vom Zustand Pin 3 sollte er rückwärts oder vorwärts zählen.
Erwähnen sollte ich vieleicht noch dass ich den Drehenkoder mittels einer Zusatzschalung entprelle und die Impulse und die Drehrichtung jeweils an einem extra Pin ausgebe und diese zwei Signale an den Ardu-Eingangen einlese.
Wie oben schon beschrieben möchte ich das Programm besser verstehen und es fürs Hoch- Runterzählen umstricken.
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
#define InPin 2
volatile uint16_t counter;
char pbuf[20];
void setup() {
pinMode(InPin, INPUT);
digitalWrite(InPin, HIGH);
lcd.begin(16, 2);
lcd.print("Stueckzahl:");
attachInterrupt(0, count, FALLING );
}
void loop() {
uint16_t lastcount=0xffff; [font=Verdana]Dieser Befehl sagt mir zum Beispiel nichts[/font]
uint8_t sreg; [font=Verdana]Dieser auch nichts[/font]
if (counter != lastcount) {
sreg = SREG; [font=Verdana]was bedeutet Das[/font]
cli(); [font=Verdana]Auch unbekannt[/font]
lastcount = counter;
SREG = sreg;
sprintf(pbuf, "%5u", lastcount);
lcd.setCursor(11, 0);
lcd.print(pbuf);
delay(100);
}
delay(100);
}
void count() {
counter++;
}
Vielen Dank schonmal Rudi