Counter: Unterschied zwischen den Versionen
Biff (Diskussion | Beiträge) (Artikel verständlicher formuliert.) |
Biff (Diskussion | Beiträge) K (→Code: +Kommentare) |
||
Zeile 13: | Zeile 13: | ||
==Code== | ==Code== | ||
Code für die src-Datei: | Code für die src-Datei: | ||
− | <source lang=" | + | <source lang="c"> |
CONTROL_START | CONTROL_START | ||
ECMD_GLOBAL(pc_counter, 0); | ECMD_GLOBAL(pc_counter, 0); | ||
Zeile 19: | Zeile 19: | ||
// Pullup-Widerstaende aktivieren | // Pullup-Widerstaende aktivieren | ||
− | PORTD |= _BV(PORTD2); | + | PORTD |= _BV(PORTD2); // activate pullup on D2 |
− | DDRD |= _BV(DDD2); | + | DDRD |= _BV(DDD2); // set D2 to input |
− | PIND &= ~_BV(PIND2); | + | PIND &= ~_BV(PIND2); |
− | _EIMSK |= _BV(INT0); | + | _EIMSK |= _BV(INT0); // external interrupt request 0 enable |
− | _EICRA |= _BV(ISC01); | + | _EICRA |= _BV(ISC01); // the falling edge of INT0 generates an interrupt request. |
END | END | ||
CONTROL_END | CONTROL_END |
Version vom 15. September 2010, 20:21 Uhr
Dieses Beispiel zeigt, wie man einen Impulszähler mittels eines Control6-Skripts erstellen kann. Der Signaleingang ist am INT0-Pin.
Abfrage
Counter-Abfrage mittels ECMD über TCP:
gummi:~# echo "c6 get pc_counter" | socat stdio tcp4:10.0.0.40:2701 pc_counter 98
oder mittels ECMD und Webbrowser:
http://10.0.0.40/ecmd?c6+get+pc_counter
(liefert "pc_counter 98" im Browser).
Siehe auch ECMD Protocols.
Code
Code für die src-Datei:
CONTROL_START
ECMD_GLOBAL(pc_counter, 0);
ON STARTUP DO
// Pullup-Widerstaende aktivieren
PORTD |= _BV(PORTD2); // activate pullup on D2
DDRD |= _BV(DDD2); // set D2 to input
PIND &= ~_BV(PIND2);
_EIMSK |= _BV(INT0); // external interrupt request 0 enable
_EICRA |= _BV(ISC01); // the falling edge of INT0 generates an interrupt request.
END
CONTROL_END
ISR(INT0_vect)
{
pc_counter ++;
}