- Akku Tests und Balkonkraftwerk Speicher         
Seite 10 von 12 ErsteErste ... 89101112 LetzteLetzte
Ergebnis 91 bis 100 von 113

Thema: neue Asuro Lib V2.70 (Release Candidate 3)

  1. #91
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    Anzeige

    LiFePo4 Akku selber bauen - Video
    ich denke, so resige änderungen wirds ncht mehr geben.

    die .c dateien müssen auch mit kopiert werden.

    hinzufügen oder includieren brauchst du sie glaube ich nicht, sondern das passiert durch die .a-datei (sofern ich das richtig kapiert habe)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  2. #92
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo inka, (auch damaltor),

    NEIN, die C-Dateien brauchen nicht irgendwohin kopiert zu werden!

    Es ist ausreichend, wenn die Entwicklungsumgebung weiss wo die LIB ist. Da die LIB die Datei Datei libasuro.a IST, und sie in das Standard-Verzeichnis für Library's von euch kopiert werde soll, findet sie eigendlich jede Umgebung ganz alleine.

    Hier noch ein Tipp:
    Wo eigendlich ist das LIB-Verzeichnis?

    inka hat oben als Muster c:/WinAVR/avr/lib angegeben. Das müsste für die meisten auch OK sein.
    Ich selber installiere alle Programme immer an einer anderen Stelle, dann ist der Pfad zur LIB aber auch anders. Bei mir heist es dann C:\Programme\Meine\Prog\AVR-Win\avr\lib.

    Wichtig: Wenn ihr nicht sicher seid, wo das Lib-Verzeichnis ist, sucht einfach nach "ranlib.exe", bei mir kommt dann C:\Programme\Meine\Prog\AVR-Win\avr\bin. Jetzt seid ihr sehr dicht bei dem Lib-Verzeichnis.
    (Upss, hoffe, dass das hilft)

    Hier noch mal eine weitere KurzInfo (oben schon erwähnt):
    - alte, original-Datei asuro.c zerlegt in viel *.c-Dateien
    - alle *.c-Dateien werden zu *.o übersetzt.
    - alle *.o-Dateien werden in der asuro.a NUR zusammengefasst.
    ---> Alles was notwendig ist, ist IN der asuro.a-Datei.

    Die 'blöde' asuro.h ist nur dafür da, damit der Compiler weiss, dass es das Zeug überhaupt gibt. (Natürlich auch für die dort definierten #define-Zeilen)
    Lieber Asuro programieren als arbeiten gehen.

  3. #93
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hi Sternthaler,
    werden die neuen *.c dateien auch auf netzwerklaufwerken gesucht (und gefunden?), muss ich den pfad dahin nicht angeben?
    gruß inka

  4. #94
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hier ein versuch, wie es eben nicht geht :

    ich habe die lib mit hilfe der setup.exe in das netzwerkverzeichnis Y:\georg\hobby\roboter\asuro\_asuro_lib\2_7_rc3\As uroLib installiert. Die installation verlief problemlos...
    beim compilieren kommen diese meldungen:
    Code:
    rm -rf herman_sw_linie.o  herman_sw_linie.elf dep/* herman_sw_linie.hex herman_sw_linie.eep
    Build succeeded with 0 Warnings...
    avr-gcc.exe -I"Y:\georg\hobby\roboter\asuro\_asuro_lib\2_7_rc2\lib\lib\inc" -I"Y:\georg\hobby\roboter\asuro\_asuro_lib\2_7_rc3\AsuroLib\lib"  -mmcu=atmega8 -Wall -gdwarf-2   -DF_CPU=8000000UL -Os -fsigned-char -MD -MP -MT herman_sw_linie.o -MF dep/herman_s
    w_linie.o.d  -c  ../hermann_sw_linie/herman_sw_linie.c
    
    avr-gcc.exe -mmcu=atmega8  herman_sw_linie.o     -o herman_sw_linie.elf
    herman_sw_linie.o: In function `RaceStart':
    ../hermann_sw_linie/herman_sw_linie.c:100: undefined reference to `PollSwitch'
    ../hermann_sw_linie/herman_sw_linie.c:101: undefined reference to `PollSwitch'
    ../hermann_sw_linie/herman_sw_linie.c:111: undefined reference to `StatusLED'
    ../hermann_sw_linie/herman_sw_linie.c:114: undefined reference to `Msleep'
    ../hermann_sw_linie/herman_sw_linie.c:117: undefined reference to `StatusLED'
    ../hermann_sw_linie/herman_sw_linie.c:118: undefined reference to `BackLED'
    ../hermann_sw_linie/herman_sw_linie.c:122: undefined reference to `PollSwitch'
    ../hermann_sw_linie/herman_sw_linie.c:123: undefined reference to `PollSwitch'
    ../hermann_sw_linie/herman_sw_linie.c:131: undefined reference to `Msleep'
    ../hermann_sw_linie/herman_sw_linie.c:134: undefined reference to `BackLED'
    herman_sw_linie.o: In function `main':
    ../hermann_sw_linie/herman_sw_linie.c:47: undefined reference to `Init'
    ../hermann_sw_linie/herman_sw_linie.c:51: undefined reference to `FrontLED'
    ../hermann_sw_linie/herman_sw_linie.c:52: undefined reference to `MotorDir'
    ../hermann_sw_linie/herman_sw_linie.c:53: undefined reference to `MotorSpeed'
    ../hermann_sw_linie/herman_sw_linie.c:57: undefined reference to `LineData'
    ../hermann_sw_linie/herman_sw_linie.c:67: undefined reference to `BackLED'
    ../hermann_sw_linie/herman_sw_linie.c:76: undefined reference to `BackLED'
    make: *** [herman_sw_linie.elf] Error 1
    Build failed with 17 errors and 0 warnings...
    ich habe in AVR noch die folgenden verzeichnise mit angegen:
    Y:\georg\hobby\roboter\asuro\_asuro_lib\2_7_rc3\As uroLib\lib\ (da sind die *.c dateien)
    und
    Y:\georg\hobby\roboter\asuro\_asuro_lib\2_7_rc3\As uroLib\lib\inc\ (da ist die asuro.h z.b.)

    - die vom AVR mit "undefined reference to " gemeldeten befehle sind doch schon mit der lib 2.6.1 gelaufen, oder? Sind die in der 2.7 nicht mehr drin?
    gruß inka

  5. #95
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180

    es lässt mir keine ruhe

    deshalb habe ich mit der 2.7. lib weiter experimentiert:

    - alle neuen *.c als sourcefiles dazu-addiert/als sourcefiles hinzugefügt
    - das verzeichnis mit den *.h dateien in den project einstellungen hinzugefügt

    das kompilieren verlief ohne fehlermeldung, das hexfile hat allerdings nicht weniger als die 42 ursprünglichen pages sondern 69!

    Hat man damit eines der angestrebten ziele verfehlt? Oder mache ich etwas falsch?
    gruß inka

  6. #96
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    das prinzip der geteilten lib ist, dass nur die funktionen die gebraucht werden auch kompiliert werden. wenn aber alle dateien zugefügt wurden, dann werden auch alle kompiliert, und das programm ist riesig...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #97
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    muss ich dann entscheiden welche *.c notwendig ist? Für einen anfänger schwierig - da war die asuro.c als ganzes einfacher
    gruß inka

  8. #98
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    nein. du musst nur die .h datei includieren. durch diese wird dann in der .a datei geschaut welche .c dateien benötgt werden (bzw. .o-dateien). theoretisch sollte das alles sien.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  9. #99
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199
    Hallo m.a.r.v.i.n,
    Zitat Zitat von m.a.r.v.i.n
    Hallo Hermann,

    wie wäre es damit:

    "magic_1"
    Code:
    USRB = 0;               // UART TX disable
    OCR2  = 0xF7;         // Pulsbreite 8
    "magic_2"
    Code:
    OCR2 = 0x91;         // Pulsbreite fuer 36kHz
    da das Programm examples/IRCollisionTest der Asuro Library v270rc3 nicht funktioniert, habe ich mich an Dein Posting erinnert und endlich Deinen Vorschlag mit folgendem Programm getestet:
    Code:
    #include "asuro.h"
    
    char *msgG="GREEN\r\n";
    char *msgR="RED\r\n";
    char *something=NULL;    
    
    int main(void)
    {
      Init(); 
      
      DDRD |= (1 << DDD1);  // Port D1 als Ausgang 
      PORTD &= ~(1 << PD1); // PD1 auf LOW 
      OCR2  = 0xF7;         // Pulsbreite 8 
      
      while (1) 
      { 
    //  "magic_1" 
        UCSRB = 0;          // UART TX disable 
        OCR2  = 0xF7;       // Pulsbreite 8 
    
        if (PIND & (1 << PD0)) 
        { StatusLED(GREEN); something=msgG; }
        else 
        { StatusLED(RED);   something=msgR; }
      
    //  "magic_2" 
        OCR2 = 0x91;        // Pulsbreite fuer 36kHz 
      
        SerPrint(something); 
    
    //    Msleep(50);
      } 
    
      return 0;
    }
    Leider funktioniert es nicht richtig:
    • ohne SerPrint() ist der LED-Output OK
    • mit SerPrint() ohne Msleep() gibt's nur GREEN, unabhängig vom Abstand
    • mit SerPrint() und Msleep(50) gibt es ab und zu sogar "Audio" (bell character), und folgenden Output:
      Code:
      GREEN
      GREEN
      GREEN
      GREEN
      GREEN
      GREEN
      GREEN
      GREEN
      GREEN
      GREEN
      GREEN
      GREEN
      GREEN
      GREEN
      REEN
      GREEN
      FREEN
      GREEN
      GREEN
      GREEN
      GREEN
      FREEN
      ...
    Wieso kommt RED so selten, obwohl ich den Abstand auch klein und groß gemacht habe?
    Und vor allem, wieso wird nicht RED in einer Zeile geschrieben, sondern REEN, FREEN, ...?
    Gruß, Hermann.
    myIrAsuro.Bild hier  

  10. #100
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Hermann,

    ich hatte es mit dem folgendem Programm probiert.
    Hier erfolgt eine serielle Ausgabe allerdings nur, wenn eine Taste gedrückt wurde.
    Code:
    int main(void)
    {
    
      unsigned char sw;
    
      Init();
      
      DDRD |= (1 << DDD1);	// Port D1 als Ausgang
      PORTD &= ~(1 << PD1);	// PD1 auf LOW
      ocr2 = 0xFE;
      while (1)
      {
        UCSRB = 0;
        OCR2 = ocr2;
    
        if (PIND & (1 << PD0))
          StatusLED(GREEN);
        else
          StatusLED(RED);
    
        sw = PollSwitch();
        if (sw & 0x01)
          ocr2  = 0xFE;	//Pulsbreite 1
        if (sw & 0x02)
          ocr2  = 0xFD;	//Pulsbreite 2
        if (sw & 0x04)
          ocr2  = 0xFB;	//Pulsbreite 4
        if (sw & 0x08)
          ocr2  = 0xF7;	//Pulsbreite 8
        if (sw & 0x10)
          ocr2  = 0xEF;	//Pulsbreite 16
        if (sw & 0x20)
          ocr2  = 0x90;	//Pulsbreite 110
    
        if (sw)
        {  
          OCR2 = 0x91;
          PrintInt(sw); 
          SerPrint(" ");
          PrintInt(ocr2); 
          SerPrint("\r\n");
        }
    //    Msleep(100);
      }
      return 0;
    }
    Mit deinem Programm bekomme ich dasselbe Ergebnis wie du. Merkwürdig.

Seite 10 von 12 ErsteErste ... 89101112 LetzteLetzte

Berechtigungen

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

12V Akku bauen