- fchao-Sinus-Wechselrichter AliExpress         
Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 50

Thema: Atmega8 als I2C Slave

  1. #31
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Welche Master-Lib steckt dahinter?

  2. #32
    Da steckt meine eigene master-lib dahinter da der Master über gpio pins läuft

  3. #33
    Neuer Benutzer Öfters hier
    Registriert seit
    25.03.2007
    Beiträge
    6
    Hallo,

    ich habe gerade den Code zum Slave gefunden, aber im Moment komme ich leider nicht weiter:

    Code:
    #include "avr/io.h"
    #include "uart.h"
    
    
    
    init_twi_slave(0x50); 
    
    int main(void)
     {
    txbuffer[0]=255; 
    txbuffer[1]=100; 
    txbuffer[2]=33; 
     }
    bekomme ich den Fehler vom compiler:
    Build started 25.3.2007 at 20:54:27
    avr-gcc.exe -mmcu=atmega8 -Wall -gdwarf-2 -O0 -MD -MP -MT twislave.o -MF dep/twislave.o.d -c ../twislave.c
    ../twislave.c:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rxbuffer'
    ../twislave.c:43: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'txbuffer'
    ../twislave.c:50: error: expected ')' before 'adr'
    ../twislave.c: In function 'init_twi_slave':
    ../twislave.c:77: warning: implicit declaration of function 'sei'
    ../twislave.c: At top level:
    ../twislave.c:95: warning: return type defaults to 'int'
    ../twislave.c: In function 'ISR':
    ../twislave.c:115: error: 'rxbuffer' undeclared (first use in this function)
    ../twislave.c:115: error: (Each undeclared identifier is reported only once
    ../twislave.c:115: error: for each function it appears in.)
    ../twislave.c:133: error: 'txbuffer' undeclared (first use in this function)
    ../twislave.c:160: warning: control reaches end of non-void function
    make: *** [twislave.o] Error 1
    Build failed with 7 errors and 3 warnings...


    Die Buffer muß ich die selbst definieren oder muß ich noch etwas anderes einbinden ?

    viele Grüße
    Mario

  4. #34
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    Code:
    ../twislave.c: In function 'ISR':
    lässt ahnen, dass du eine veraltete avr-gcc-Version hast. Dein Compiler kenn anscheinden den Datentyp uint8_t nicht, und behandelt auch die Interrupts noch mit signal statt ISR.
    Im Wiki hab ich ne auch ne neue der twislave.c Version eingefügt, solltest du auch mal aktualisieren.

    Hast du die twislave.c im Makefile eingebunden? Sonst fehlt im Hauptprogramm noch #include "twimaster.c"

  5. #35
    Neuer Benutzer Öfters hier
    Registriert seit
    25.03.2007
    Beiträge
    6
    hmm, GCC Heute heruntergeladen:

    C:\WINDOWS>avr-gcc --version
    avr-gcc (GCC) 4.1.1 (WinAVR 20070122)
    Copyright (C) 2006 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.


    C:\WINDOWS>

    Die twislave.c ist von jetzt gerade, selber Fehler.

    Habe gerade die twimaster.c eingebunden, selber Fehler.

    ich habe auch gelesen das .c Dateien nicht includiert werden sondern eingebunden, warscheinlich von der Funktion das gleiche, scheinbar nur "optik".
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken slave_159.jpg  

  6. #36
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    Zitat Zitat von Makrolon
    hmm, GCC Heute heruntergeladen:
    Die twislave.c ist von jetzt gerade, selber Fehler.
    Habe gerade die twimaster.c eingebunden, selber Fehler.
    merkwürdig...


    zu welcher Version der twislave.c passen die Zeilennummern aus den Fehlermeldungen?

  7. #37
    Neuer Benutzer Öfters hier
    Registriert seit
    25.03.2007
    Beiträge
    6
    neuer Fehler, passend zur neuen twislave.c

    Build started 25.3.2007 at 21:51:17
    avr-gcc.exe -mmcu=atmega8 -Wall -gdwarf-2 -O0 -MD -MP -MT twislave.o -MF dep/twislave.o.d -c ../twislave.c
    ../twislave.c:49: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rxbuffer'
    ../twislave.c:52: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'txbuffer'
    ../twislave.c:59: error: expected ')' before 'adr'
    ../twislave.c: In function 'init_twi_slave':
    ../twislave.c:95: warning: implicit declaration of function 'sei'
    ../twislave.c: At top level:
    ../twislave.c:116: warning: return type defaults to 'int'
    ../twislave.c: In function 'ISR':
    ../twislave.c:146: error: 'rxbuffer' undeclared (first use in this function)
    ../twislave.c:146: error: (Each undeclared identifier is reported only once
    ../twislave.c:146: error: for each function it appears in.)
    ../twislave.c:166: error: 'txbuffer' undeclared (first use in this function)
    ../twislave.c:188: warning: control reaches end of non-void function
    make: *** [twislave.o] Error 1
    Build failed with 7 errors and 3 warnings...

  8. #38
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    Ich hab jetzt den Fehler reproduzieren können.
    Lösung:

    #include <avr/interrupt.h> und #include <avr/io.h> müssen im Hauptprogramm VOR #include "twislave.c" stehen.

    Wie gesagt, das ganze ist noch nicht ganz ausgereift. Ich hab noch nicht vile Erfahrung mit dem Erstellen von libs, und bring arbeite mich so learning by doing in die Materie ein.

    Der Bugfix: in der twislave.c an Anfang noch
    #include <avr/interrupt.h>
    #include <avr/io.h>
    einfügen, dann sollte es immer gehen.

    PS: was macht die twimaster.c in deinem Projekt? Entweder Master ODER Slave. Für Multimaster müsste man beides in einer lib kombinieren.

  9. #39
    Neuer Benutzer Öfters hier
    Registriert seit
    25.03.2007
    Beiträge
    6
    vielen Dank für die Hilfe.

    habe jetzt mal den Code geändert:
    Code:
    #include <avr/interrupt.h> 
    #include <avr/io.h> 
    #include "twislave.c"
    
    init_twi_slave(0x50); 
    
    int main(void)
     {
    
    txbuffer[0]=255; 
    txbuffer[1]=100; 
    txbuffer[2]=33; 
    
     }
    bekomme jetzt einen anderen Fehler:
    Build started 25.3.2007 at 22:09:27
    avr-gcc.exe -mmcu=atmega8 -Wall -gdwarf-2 -O0 -MD -MP -MT slave.o -MF dep/slave.o.d -c ../slave.c
    ../slave.c:5: error: expected declaration specifiers or '...' before numeric constant
    ../slave.c:5: warning: data definition has no type or storage class
    ../slave.c:5: warning: type defaults to 'int' in declaration of 'init_twi_slave'
    ../slave.c:5: error: conflicting types for 'init_twi_slave'
    ../twislave.c:90: error: previous definition of 'init_twi_slave' was here
    ../slave.c: In function 'main':
    ../slave.c:14: warning: control reaches end of non-void function
    make: *** [slave.o] Error 1
    Build failed with 3 errors and 3 warnings...

  10. #40
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    Irgendwie hakt es beim Datentyp. Kennt der kein uint8_t mehr?
    Oder ist nur das AVRStudio schuld? Ich verwende programmes notepad. Ich weiß nicht, wie das Studio mit solchen Projekten aus mehreren Codedateien umgeht.

    versuch mal ne eigene Variable als uint8_t anzulegen. Wenn er dabei meckert, versuch mal #include <stdint.h>

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte

Berechtigungen

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

12V Akku bauen