SRF10 Problem

Gast #1272706
Lesenswert?

Hallo zusammen,
Ich habe ein Problem mit dem Auslesen meines SRF10.
Der SRF10 wird zwar angesprochen und reagiert auch (allerdings erst ab 
ca. 20 cm) aber das was er mir in HyperTerminal ausgibt sind nur Pfeile, 
Smilies usw..
Außerdem ist mein ack andauernd auf 0.
1
#include <inttypes.h>
2
#include <avr/interrupt.h>
3
#include <avr/sleep.h>
4
#include <avr/io.h>
5
#include <math.h>
6
#include "i2cmaster.h"
7
#include "twimaster.c"
8
#include <util/delay.h>
9
#include <avr/sfr_defs.h>
10
#define SRF 0xE0
11
#define BAUD 115200L
12
#define F_CPU 7372800UL
13

14
//unsigned int distance;
15

16

17

18
void initusart(void) 
19
{
20
unsigned char x; 
21

22
UBRRL = (F_CPU / (16L*BAUD)) -1; 
23
UCSRB |= (1<<TXEN) | (1<<RXEN); 
24
UCSRC |= (1<< URSEL) | (1<< UCSZ1) | (1<<UCSZ0); 
25
x = UDR;
26
}
27

28
void sendeusart(int x)
29
{
30
while (!(UCSRA & (1<<UDRE))); 
31

32
UDR = x;
33
}
34

35

36
int main(void) 
37
{ 
38
initusart();
39

40
unsigned char Lbyte,Hbyte;
41

42
while(1) 
43
{ 
44
i2c_init();
45

46
i2c_start(SRF); 
47
i2c_write(0x00); 
48
i2c_write(0x51); 
49
i2c_stop(); 
50

51
_delay_ms(65); 
52

53
i2c_start(SRF);  
54
i2c_write(0x02);
55
i2c_stop(); 
56

57
i2c_start_wait(SRF + 0x01); 
58
Hbyte=i2c_readAck(); 
59
Lbyte=i2c_readNak(); 
60
i2c_stop(); 
61
//distance=(Hbyte*256)+Lbyte;
62
//sendeusart(Hbyte);
63
sendeusart(Lbyte); 
64
}
65
}

Pullups hab ich dran...

Ich denk es ist ein doofer Anfängerfehler bei dem ihr mir bestimmt 
helfen könnt.


MfG

Marc
Gast #1272892
Lesenswert?

Hi

>>ich dachte, dass ich mit
>>distance=(Hbyte*256)+Lbyte;
>und dann mit sendeusart(distance) den Abstand raus bekomm.

Aber das ist mit Sicherheit ein Hexwert, der im Terminalprogramm das 
entsprechende ASCII-Zeichen erzeugt. Pfeile,Smilies deuten auf Werte 
zwischen 0 und 31.

MfG Spess
Gast #1272994
Lesenswert?

Ja was war's denn nun?

Da liest man nun schon mit, und dann gibt's am Ende nichts, wo man auch 
was draus für sich mitnehmen kann?

Und denkt doch bitte auch mal an die, die den Thread später mal lesen. 
So ein offenes Ende ist doch irgendwie blöd.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren