www.mikrocontroller.net

Forum: GCC SRF01 Ultrasonic range finder


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: srf01 (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Beitrag #2652085 wurde vom Autor gelöscht.
Autor: Xmega-Kenner (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: xy_xy (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: srf01 (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Keine Antwort??

Autor: Karl Heinz Buchegger (kbuchegg) (Moderator)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: srf01 (Gast)
Datum:
Angehängte Dateien:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
hi,
hier sind die codes die ich vom atmega32 an xmega128a1 angepasst habe.
es funktioniert leider nicht und weiss auch nicht wo das problem 
eigentlich liegt.
Kann einer von euch bitte mir helfen, ich würde mich sehr freuen.

freundliche grüsse

Autor: Dennis (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: ns ns (enes285)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: ns ns (enes285)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: ns ns (enes285)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
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.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net