Forum: Compiler & IDEs SRF01 Ultrasonic range finder


von srf01 (Gast)


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

von Xmega-Kenner (Gast)


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.

von xy_xy (Gast)


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

von srf01 (Gast)


Lesenswert?

Keine Antwort??

von Karl H. (kbuchegg)


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.

von srf01 (Gast)


Angehängte Dateien:

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

von Dennis (Gast)


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

von ns n. (enes285)


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

von ns n. (enes285)


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

von ns n. (enes285)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.