-
Frage zur Fernsteuerung
Hallo Leute ich habe ein Programm gefunden, mit welchem ich meinen ASURO fernsteurn kann, mittels einer Fernbedienung. Habe es auch nach meinen Wünschen etwas optimiert. Jedoch gibt es 2 Stellen im Programm, die ich nicht verstehe und es wäre sehr nett, wenn mir jemand die Funktion dieses Porgrammabschnitts erklären könnte:
Gleich zu Beginn steht das:
volatile unsigned int rxdata;
volatile unsigned char rxbits;
SIGNAL (SIG_OVERFLOW0)
{
rxbits++;
rxdata<<=1;
rxdata |= (PIND & (1 << PD0)); // liest Datenbits
TCNT0 = 34; // Timer auf 1778µs
if(rxbits==14){
TCCR0 &= ~((1 << CS01) | (1 << CS00)); // stoppt Timer
was genau macht der ASURO hier oder was hat es zu bedeuten?
und am ende des Programms steht dann das:
int main(void)
{
static unsigned int cmd;
Init();
for (;; ) {
rxbits = 1; rxdata = 0;
TIMSK |= (1 << TOIE0);
while(PIND & (1 << PD0));
TCNT0 = 90;
TCCR0 = (1 << CS01) | (1 << CS00);
while(rxbits < 14);
cmd = (rxdata & 0x3F); // 6 Command-Bits werden verwertet
switch (cmd) {
das kann ich überhaupt nicht nachvollziehen, da ich die meisten Befehle nicht kenne. Steht das cmd für die Commandobits?
Vielen Dank