SRF01 Ultrasonic range finder

Gast #2651943
Lesenswert?

Hallo,
ich muss mit AVR Xmega128a1 den Proximity-Sensor SRF01 in C 
programmieren und
habe ich für den gleichen Sensor ein Sample-Code mit ATMega32 gefunden.
Könnte mir dieses Code vllt weiter helfen oder muss ich vieles ändern?

Der Sensor soll mir nur sagen ob vor ihm ein Objekt ist oder nicht. Z.b, 
wenn Objekt da ist ein Led leuchtet wenn nicht, nicht.

Ich würde mich auf eure hilfreiche Antworten freuen:)

Gruss,
Enes
Gast #2654153
Lesenswert?

Du musst doch nur den UART einstellen. 8N1, Beschaltung wie auf der 
Internetseite. Dann noch die serialTX, serialRX, sendBrk und clearRXBuf 
an den Xmega anpassen.
sendBrk ist nur Port-Gewackel, das solltest du ja wohl hinbekommen.
serialTX und serialRX kannst du dir aus den Xmega Appnotes generieren. 
Ist ja nur ins Data-Register schreiben/lesen und auf ein Flag warten.
Der andere Kram kann größtenteils so bleiben.

Dann komm wieder wenn du eine konkrete Frage/Problem hast.
Gast #2666825
Lesenswert?

Danke für die Antwort,
bin ganz neu und das sind eigentlich die sachen die iich nicht 
hinbekommen habe.
kannst du mir vllt ausführlicher erklaeren was ich machen soll??
wenn möglich auch codes dafür?
ich muss unbedigt den sensor zum laufen brigen. hoffe du hilfst mir.

freundliche grüsse
#2678676
Lesenswert?

xy_xy schrieb:
> Danke für die Antwort,
> bin ganz neu und das sind eigentlich die sachen die iich nicht
> hinbekommen habe.

Dann musst du eben üben.

Tip: Wenn man das erste mal eine RS232 in Betrieb nimmt, ist es eine 
gute Strategie, erst mal eine Unbekannte zu eliminieren. Sprich: die 
ersten Versuche macht man, indem am anderen Ende der Leitung ein 
Terminal sitzt (oder PC mit Terminalprogramm), so dass man sehen kann, 
ob und was vom µC auf der Seriellen rausgeschickt wird und ob das 
richtig ist.

Ansonsten führt man einen 2-Frontenkrieg, weil man nie weiß, ob die 
RS232 grundsätzlich funktioniert und nur das Gesendete falsch ist oder 
ob nur letzteres der Fall ist.
Gast #2687763
Lesenswert?

Wofür benutzt du den Sensor denn bzw. was für ein Projekt hast du am 
Laufen?

Hast du mal ins Datenblatt des Xmega128a1 bzw. ATMega32 geschaut?

Ich hab den Sensor auch gerade vor mir liegen und muss die Software in 
nächster Zeit an einen mega8 anpassen, aber das dürfte nicht so schwer 
sein.

Gruß,
Dennis
#2687792
Lesenswert?

Dennis schrieb:
> Wofür benutzt du den Sensor denn bzw. was für ein Projekt hast du am
> Laufen?
>
> Hast du mal ins Datenblatt des Xmega128a1 bzw. ATMega32 geschaut?
>
> Ich hab den Sensor auch gerade vor mir liegen und muss die Software in
> nächster Zeit an einen mega8 anpassen, aber das dürfte nicht so schwer
> sein.
>
> Gruß,
> Dennis

Ja, an einen mega8 anzupassen dürfte nicht schwer sein aber xmega ist 
schon komplitziert. hast du dir schon mein code angeschaut ??

lg
#2687907
Lesenswert?

Xmega-Kenner schrieb:
> Du musst doch nur den UART einstellen. 8N1, Beschaltung wie auf der
> Internetseite. Dann noch die serialTX, serialRX, sendBrk und clearRXBuf
> an den Xmega anpassen.
> sendBrk ist nur Port-Gewackel, das solltest du ja wohl hinbekommen.
> serialTX und serialRX kannst du dir aus den Xmega Appnotes generieren.
> Ist ja nur ins Data-Register schreiben/lesen und auf ein Flag warten.
> Der andere Kram kann größtenteils so bleiben.
>
> Dann komm wieder wenn du eine konkrete Frage/Problem hast.

hi xmega-kenner,

dieses sample code mit atmega32 ist mit ner anzeige durchgeführt. hab 
alles angepasst aber hatte schwierigkeiten mit CTC mode in xmega 
anzupassen.wie ist es eig in xmega??ich konnte drüber gar nix finden im 
datasheet. und wollte noch fragen ob ich i2c auch anpassen muss wenn ich 
keine anzeige habe. ich will ja nur dass der sensor ein led leuchtet 
wenn vor ihm was ist.

lg
#2691221
Lesenswert?

Xmega-Kenner schrieb:
> Du musst doch nur den UART einstellen. 8N1, Beschaltung wie auf der
> Internetseite. Dann noch die serialTX, serialRX, sendBrk und clearRXBuf
> an den Xmega anpassen.
> sendBrk ist nur Port-Gewackel, das solltest du ja wohl hinbekommen.
> serialTX und serialRX kannst du dir aus den Xmega Appnotes generieren.
> Ist ja nur ins Data-Register schreiben/lesen und auf ein Flag warten.
> Der andere Kram kann größtenteils so bleiben.
>
> Dann komm wieder wenn du eine konkrete Frage/Problem hast.

hi,danke für deine Antwort.
ich wollt leztens kurz testen ob ich überhaupt was sende zum sensor und 
hab mit osci getestet. da habe ich gesehen dass ich ständig einsen 
sende. es sollte eig. wegen sendBrk auch auf low gehen oder?



void sendBrk(void)      // Send a simulated break by sending the TX line 
low for a period of time and then sending it high again
{
  USARTC0.CTRLB = 0x00;  // Disable USART reciever and transmitter


  PORTC.DIRSET=PIN3_bm;    // PC3 (TXD0) as output.
  PORTC.DIRCLR=PIN2_bm;


  PORTC.PIN3CTRL = 0x0;  // Send pin low

  startTimer(0x0500);    // wait for about 1ms
  waitForTimer();


  PORTC.PIN3CTRL=0x1;    //send pin high
  USARTC0.CTRLB = 0x18;  // Enable USART reciever and transmitter
}

ist da was falsch??
lg

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