Counter: Unterschied zwischen den Versionen
Kiwi (Diskussion | Beiträge) |
Kiwi (Diskussion | Beiträge) |
||
Zeile 14: | Zeile 14: | ||
ECMD_GLOBAL(pc_counter, 0); | ECMD_GLOBAL(pc_counter, 0); | ||
ON STARTUP DO | ON STARTUP DO | ||
+ | |||
+ | // Pullup Wiederstaende Aktivieren | ||
+ | PORTD |= _BV(PORTD2); // ATMEGA64 | ||
+ | // PORTD(PORTD2) = 0 | ||
+ | DDRD |= _BV(DDD2); // ATMEGA64 | ||
+ | // DDRD(DDD2) = 0 | ||
+ | PIND &= ~_BV(PIND2); // ATMEGA64 | ||
+ | // PIND(PIND2) = 1 | ||
+ | |||
// GICR |= _BV(INT0); // ATMEGA32 | // GICR |= _BV(INT0); // ATMEGA32 | ||
// MCUCR |= _BV(ISC01); // ATMEGA32 | // MCUCR |= _BV(ISC01); // ATMEGA32 |
Version vom 30. Juli 2009, 22: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); // ATMEGA64
// PORTD(PORTD2) = 0
DDRD |= _BV(DDD2); // ATMEGA64
// DDRD(DDD2) = 0
PIND &= ~_BV(PIND2); // ATMEGA64
// PIND(PIND2) = 1
// GICR |= _BV(INT0); // ATMEGA32
// MCUCR |= _BV(ISC01); // ATMEGA32
EIMSK |= _BV(PCINT0); // ATMEGA644
EICRA |= _BV(ISC01); // ATMEGA644
END
CONTROL_END
ISR(INT0_vect)
{
pc_counter ++;
}