gehe zum Quellcode dieser Datei
- Rückgabe
- distance in cm
Definiert in Zeile 103 der Datei ultrasonic.c.
{
unsigned int sleeptime = 0, dist = 0;
}
#if defined(__AVR_ATmega168__)
TCCR2A = _BV(WGM21);
TCCR2B = _BV(CS20);
#else
TCCR2 = _BV(WGM21) | _BV(CS20);
#endif
OCR2 = 100;
sleeptime++;
if((ACSR & _BV(ACI))) {
dist = (unsigned int) ((long) ((344L * ((sleeptime * 1000L) / 72L) / 10000L) / 2L));
ACSR |= _BV(ACI);
break;
}
ACSR |= _BV(ACI);
if(sleeptime > 3500) {
return -1;
}
}
return dist;
}
void InitUltrasonics |
( |
void |
| ) |
|
initialises the Ultrasonic module this function is automaticly called by Chirp
Definiert in Zeile 34 der Datei ultrasonic.c.
{
cli();
#if defined(__AVR_ATmega168__)
TCCR2A = _BV(WGM21);
TCCR2B = _BV(CS20);
TIMSK2 &= ~_BV(TOIE2);
TIMSK2 |= _BV(OCIE2A);
#else
TCCR2 = _BV(WGM21) | _BV(CS20);
TIMSK &= ~_BV(TOIE2);
TIMSK |= _BV(OCIE2);
#endif
OCR2 = 100;
ADCSRA = 0;
ACSR |= _BV(ACIS1);
ADMUX = 0x03;
#if defined(__AVR_ATmega168__)
ADCSRB |= _BV(ACME);
#else
SFIOR |= _BV(ACME);
#endif
DDRD &= ~_BV(6);
sei();
}
void RestoreAsuro |
( |
void |
| ) |
|
restores the hardware after using the Ultrasonic module this function is called automaticly after a Chirp
Definiert in Zeile 71 der Datei ultrasonic.c.
{
cli();
#if defined(__AVR_ATmega168__)
TCCR2A = _BV(WGM20) | _BV(WGM21) | _BV(COM2A0) | _BV(COM2A1);
TCCR2B = _BV(CS20);
TIMSK2 &= ~_BV(OCIE2A);
TIMSK2 |= _BV(TOIE2);
#else
TCCR2 = _BV(WGM20) | _BV(WGM21) | _BV(COM20) | _BV(COM21) | _BV(CS20);
TIMSK &= ~_BV(OCIE2);
TIMSK |= _BV(TOIE2);
#endif
OCR2 = 0x91;
ADCSRA = _BV(ADEN) | _BV(ADPS2) | _BV(ADPS1);
ACSR &= ~_BV(ACIS1);
}
sei();
}