-
        

+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: fertig mit usart?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.01.2005
    Ort
    Gr.St.Florian
    Alter
    30
    Beiträge
    42

    fertig mit usart?

    Anzeige

    hallo leute!

    so, jetzt hab ich euren vorschlag mit union verwirklicht. nun habe ich das problem, dass 4 warning kommen mit der meldung: code has no effect!
    wär jemand so nett und könnt sich das mal anschaun und kontrollieren was da vl falsch sein könnte?

    wär ganz toll!


    liebe grüße kati
    Angehängte Dateien Angehängte Dateien

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.835
    Hi, Katiiiiiiiiiiii !

    for(i=0; i<4; i++)
    {
    x.mag_xc[i];
    }
    diese Zeile in der for-schleife hat mal sicher keinen effekt.

    Es wär besser (bei compiler-fehlern) wenn du die *.LST -datei (mit den Compile -Meldungen) schicken tätest.

    EDIT: nachträglich alles Gute !
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    20.01.2005
    Ort
    Gr.St.Florian
    Alter
    30
    Beiträge
    42
    hi!

    danke!

    was könnt ich den da anders machen? ich hab des ja so geschrieben, wie mir geraten ist worden.

    mfg
    kati

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    20.01.2005
    Ort
    Gr.St.Florian
    Alter
    30
    Beiträge
    42
    aja, die lst-datei, kann i net hinzufügen. ist nicht erlaubt,aber i könnts zippen!

    liebe grüße kati

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.835
    Code:
          temperatur.temp=1623;   
          x.mag_x=1672122;  
          y.mag_y=1672312;  
          z.mag_z=1672312;
    hier befüllst du in deinen unions die Double-Werte. Gut

    In der timer-routine willst du sie schicken. in nehm als beispiel den ersten transmit-code, die anderen sind eigentlich genauso
    Code:
    void USART_Transmit()
    {
        	while(!(UCSRA.5));     // warten, bis Buffer leer
         	temp1=temperatur.tempc[0];     // das erste byte des double
    	UDR=temp1;                             // weg damit
        	while(!(UCSRA.5));     // wieder warten, bis Buffer leer
         	temp2=temperatur.tempc[1];     // das 2. byte des double
    	UDR=temp2;                             // weg damit
        	while(!(UCSRA.5));     // wieder warten, bis Buffer leer
         	temp3=temperatur.tempc[2];     // das 3. byte des double
    	UDR=temp3;                             // weg damit
        	while(!(UCSRA.5));     // wieder warten, bis Buffer leer
         	temp4=temperatur.tempc[3];     // das 4.  byte des double
    	UDR=temp4;                             // weg damit
    }
    Da aber der Compiler bezahlt ist (nehm ich an), soll er was arbeiten. Das Gleiche, aber kompakter:

    Code:
    void USART_Transmit()
    {
    unsigned char i;
      for (i=0;i<4;i++)
      {
        	while(!(UCSRA.5));     
    	UDR=temperatur.tempc[i];
      }
    }
    Verständlich ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    20.01.2005
    Ort
    Gr.St.Florian
    Alter
    30
    Beiträge
    42
    hi! danke, das war schon verständlich!
    i hab das jetzt zwar ausgebessert, aber hat trotzdem die gleichen fehlermeldungen.

    hier, send ich gleich die lst-datei mit.

    liebe grüße
    kati
    Angehängte Dateien Angehängte Dateien

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.835
    So dala.

    Ich hab den Code mal auf das zusammengeschraubt, was direkt zum senden der vier Werte notwendig ist.

    Die sagenhafte "union" gibt's nur einmal, die wird nur direkt beim senden verwendet.

    Die Werte sind in 4 normalen doubles (ohne union), weil außer zum senden hast du ja nix davon.

    Noch was: "Warnings" heißt nur, daß dem Compiler irgendwas seltsam vorkommt. Technisch ist das Programm aber o.k.

    Schau mal, ob der Fuzzy das übersetzen kann, theoretisch sollte es auch funktionieren, ich hab nur hier im Büro keinen Mega zum ausprobieren, das täte auch blöd ausschauen.
    Angehängte Dateien Angehängte Dateien

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    20.01.2005
    Ort
    Gr.St.Florian
    Alter
    30
    Beiträge
    42
    danke für alles!

    aber i hab noch eine frage, wie werden die vier bytes aufgeteilt? in int werte? und wie sollen wir sie dann wieder zusammenrechnen, weil mein schulkollege ein java programm dafür geschrieben hat.

    liebe grüße
    katrin

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    20.01.2005
    Ort
    Gr.St.Florian
    Alter
    30
    Beiträge
    42
    danke für alles!

    aber i hab noch eine frage, wie werden die vier bytes aufgeteilt? in int werte? und wie sollen wir sie dann wieder zusammenrechnen, weil mein schulkollege ein java programm dafür geschrieben hat.

    liebe grüße
    katrin

  10. #10
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.835
    Es sind immer dieselben 4 bytes, aber als "double" definiert gehören sie zusammen, als "char" nehmen wir sie einzeln
    die effektive speicheraddresse von dem "double" und "char[0]" ist die gleiche
    A propo: der Kollege mit dem Java-Häferl hat das gleiche problem. Er muß die 4 einzelnen Bytes von dir zusammenhängen, dann aber zusammen als "double" oder "float" oder sowas "re"-definieren. Ich nehm halt mal an, das er das eh kann.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •