Counter: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
Zeile 16: Zeile 16:
  
 
                 // Pullup Wiederstaende Aktivieren
 
                 // Pullup Wiederstaende Aktivieren
                 PORTD |= _BV(PORTD2);                   // ATMEGA64
+
                 PORTD |= _BV(PORTD2);
                // PORTD(PORTD2) = 0
+
                 DDRD |= _BV(DDD2);
                 DDRD |= _BV(DDD2);                     // ATMEGA64
+
                 PIND &= ~_BV(PIND2);
                // DDRD(DDD2) = 0
 
                 PIND &= ~_BV(PIND2);                   // ATMEGA64
 
                // PIND(PIND2) = 1
 
  
                 //      GICR |= _BV(INT0);              // ATMEGA32
+
                 _EIMSK |= _BV(PCINT0);
                //      MCUCR |= _BV(ISC01);            // ATMEGA32
+
                 _EICRA |= _BV(ISC01);
                EIMSK |= _BV(PCINT0);           // ATMEGA644
 
                 EICRA |= _BV(ISC01);           // ATMEGA644
 
 
         END
 
         END
 
CONTROL_END
 
CONTROL_END

Version vom 31. Juli 2009, 00:33 Uhr


Impuls Counter mittels Control6 Script


Signal eingang am INT0 pin
Counter Abfrage mittels ECMD:

gummi:~# echo "c6 get pc_counter" | socat stdio tcp4:10.0.0.40:2701
pc_counter 98



CONTROL_START
        ECMD_GLOBAL(pc_counter, 0);
        ON STARTUP DO

                // Pullup Wiederstaende Aktivieren
                PORTD |= _BV(PORTD2);
                DDRD |= _BV(DDD2);
                PIND &= ~_BV(PIND2);

                _EIMSK |= _BV(PCINT0);
                _EICRA |= _BV(ISC01);
        END
CONTROL_END

ISR(INT0_vect)
{
        pc_counter ++;
}