PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zur Fernsteuerung



asuro_alex
29.05.2013, 11:12
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