Ultraschallsensor SRFo5 gibt immer 0 zurück
Hi,
habe folgende Funktion um die Distanz vom SRF05 zu messen:
uint16_t getAbstand() {
uint8_t tmp_sreg;
tmp_sreg = SREG;
cli();
uint16_t ergebnis;
DDRA |= (1<<PA0);
PORTA |= (1<<PA0);
_delay_us(20);
PORTA &= ~(1<<PA0);
DDRA &= ~(1<<PA0);
while(!(PINA & (1<<PA0)));
TCNT1 = 0;
while(PINA & (1<<PA0));
ergebnis=TCNT1;
ergebnis=ergebnis*20;
SREG=tmp_sreg;
return (uint16_t) ergebnis/29;
}
Ich verwende einen Pin (PA0) für Ausgabe und Eingabe. Wenn ich das Signal sende leuchtet die LED am Sensor, möchte ich mir das Ergebnis der Funktion auf einem LCD anzeigen lassen bekomme ich immer den Wert 0 zurück. Was ist an der Funktion falsch?
Gruß
Liste der Anhänge anzeigen (Anzahl: 1)
Hi xtrme4
anbei ein Beipielcode, der fkt müßte...Code ist für ATMega128
mfg
Hero_123