SRF10 Problem

Gast #1272706
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
Hi

>aber das was er mir in HyperTerminal ausgibt sind nur Pfeile,
>Smilies usw..

>sendeusart(Lbyte);

Und was meinst du, was in 'lbyte' stehen sollte?

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


@Tombstone
hab den code größten Teils übernommen...
Gast
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.