PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ultraschallsensor SRFo5 gibt immer 0 zurück



xrtm4e
13.05.2012, 15:31
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ß

Hero_123
22.06.2012, 22:25
Hi xtrme4

anbei ein Beipielcode, der fkt müßte...Code ist für ATMega128

mfg


Hero_123