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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.