Hallo Leutz,

nachdem ich mich überzeugt habe, dass mein SRF05 unter BÄHSCOM funktioniert, wollte ich das mal in C umsetzen.
Ich scheitere aber anscheinend an der Umschalterei beim Auslösen und Messen auf einem Pin.

Code:
/*PSEUDOCODE*/
/* SRF05 an PB2 */

void doUltra()
{
     static int counter = 0;

     DDRB |= (1<<PB2);   // Ausgang
     PORTB |= (1<<PB2);  // High
     /* Messvorgang? */
    _delay_us(20); /* min 10µs sind gefordert */

    PORTB &= ~(1<<PB2);  // Low
    DDRB &= ~(1<<PB2);   // Eingang
    PORTB |= (1<<PB2);  // High (interner Pullup?) */

    while( PINB & (1<<PB2) ); // auf Signal warten????

    while(!(PINB & (1<<PB2)) // Zählen wielange High
         counter++;

   return counter;
}
Jedenfalls hängt sich die Funktion in der while-Schleife auf, anscheinend kommt kein Signal (auch wenn das Ding 20cm vor einer Wand steht!).
Das jetzt hier keine Zeit gemessen wird, sei mal vernachlässigt.

Hat jemand einen fertigen Code dafür? Wäre für jeden Tipp dankbar.

thx4answer

Banzai