-         

Ergebnis 1 bis 7 von 7

Thema: TWI Slave aus RN-Wissen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.05.2007
    Beiträge
    5

    TWI Slave aus RN-Wissen

    Anzeige

    Zuerst muss ich gestehen, dass ich noch keine Erfahrung mit WinAvr habe, da ich bisher immernoch mit meinem alten CodeVision zurechtgekommen bin.
    Jetzt möchte ich allerdings einen Mega8 als Slave in einen bestehenden I2C-Bus einhängen, und vorerst nur Werte annehmen und per RS232 überprüfen.
    Da binn ich doch auf dieses schöne Beispiel im RN-Wissen gestoßen:
    http://www.rn-wissen.de/index.php/TWI_Slave_mit_avr-gcc
    doch leider bekomme ich beim compillieren des original-codes schon Warnungen und Fehler..


    Code:
    ------- begin --------
    avr-gcc (WinAVR 20100110) 4.3.3
    Copyright (C) 2008 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    Compiling C: slavetest.c
    avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./slavetest.lst  -std=gnu99 -MMD -MP -MF .dep/slavetest.o.d slavetest.c -o slavetest.o 
    slavetest.c: In function 'uart_puti':
    slavetest.c:21: warning: implicit declaration of function 'itoa'
    slavetest.c:21: warning: passing argument 1 of 'uart_puts' makes pointer from integer without a cast
    
    Compiling C: twislave.c
    avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./twislave.lst  -std=gnu99 -MMD -MP -MF .dep/twislave.o.d twislave.c -o twislave.o 
    twislave.c: In function '__vector_17':
    twislave.c:77: error: 'I2C_reg_Schreibschutz' undeclared (first use in this function)
    twislave.c:77: error: (Each undeclared identifier is reported only once
    twislave.c:77: error: for each function it appears in.)
    make.exe: *** [twislave.o] Error 1
    Liegt das noch an irgendwelchen Makefile Einstellungen oder Versionsproblemen, oder ist der code doch fehlerhaft??

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Du benutzt "I2C_reg_Schreibschutz" die er nicht kennt.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    07.05.2007
    Beiträge
    5
    habe übersehen, dass in der Disskusion zum Artikel schonmal darauf hingewiesen wurde, und wenn ich I2C_reg_Schreibschutz als Array definiere, dann giebs auch keinen Fehler mehr.

    Schade ist es trotsdem, dass der code in der Wissensdatenbank nicht direkt übersetzungsfähig ist, obwohl die letzte Bearbeitung noch gar nicht all zu lang her ist..

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    23
    Beiträge
    656
    slavetest.c:21: warning: implicit declaration of function 'itoa'
    Außerdem findet er itoa() nicht. stdlib.h eingebunden?
    meine Homepage: http://www.jbtechnologies.de
    Hauptprojekte: Breakanoid 2 - Sound Maker

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    07.05.2007
    Beiträge
    5
    Danke für den Hinnweis.
    (stdlib wahr auch nicht eingebunden..)

    Binn aber noch nicht dazu gekommen, mir das mal genauer anzuschauen und zu probieren!

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Oh, das mit dem Schreibschutz ist mir bei den letzten Änderungen durch die Lappen gegangen. Ich hatte in meinem Testprojekt nämlich die Definition von I2C_reg_Schreibschutz in einer anderen Datei stehen. Ich habe es jetzt einfach komplett entfernt, es verkompliziert die Sache nur. Wenn jemand einen Schreibschutz haben will, ist der ja schnell wieder eingebaut. Wirklich sinnvoll ist die Funktion auch eigentlich nur, wenn man als Benutzer (z.B. über die serielle Schnittstelle) von Hand Adressen eingeben kann...
    Ich habe außerdem noch stdlib.h inkludiert.

    Könntest du jetzt bitte noch mal den Code aus dem Wiki kopieren und testen? ich habe gerade leider keine AVR-Platine greifbar...

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    07.05.2007
    Beiträge
    5
    hallo uwegw,

    der code lässt sich nun problemlos kopieren und compilieren..
    (vielen dank für die arbeit)

    PS: funktionieren tut's auch

Berechtigungen

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