www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C bei Attiny13


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat jemand ein Beispiel (in C) für eine I2C Schnittstelle bei einem 
ATtiny13?
Der Controller soll ein Slave sein.

Autor: Bernhard R. (barnyhh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christian,
ich glaube kaum, daß diese CPU mit ihren 64 Byte RAM sich in C 
programmieren läßt. GCC unterstützt diese CPU jedenfalls nicht. 
Außerdem wäre das gesamte I2C- (rsp. TWI-) Protokoll in Software zu 
implementieren - bloß um wenige Cent gegenüber einer CPU zu sparen, die 
sowohl C als auch TWI versteht!

Grüße
Bernhard

Autor: Fabian B. (fabs)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Der Tiny13 lässt sich wunderbar in C programmieren!
Und das "ein paar Cent mehr ausgeben" Argument macht auch nur bei 
Hobbyanwendung Sinn...

Gruß
Fabian

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernhard Reichenbach wrote:
> Hallo Christian,
> ich glaube kaum, daß diese CPU mit ihren 64 Byte RAM sich in C
> programmieren läßt.

Wieso nicht? Was hat der RAM Verbrauch mit C zu tun?*

> GCC unterstützt diese CPU jedenfalls nicht.

Vielleicht solltest du deinen GCC mal updaten?*

> Außerdem wäre das gesamte I2C- (rsp. TWI-) Protokoll in Software zu
> implementieren - bloß um wenige Cent gegenüber einer CPU zu sparen, die
> sowohl C als auch TWI versteht!

Nimm den Tiny25, der hat wenigstens ein USI. Damit ist es nicht mehr 
ganz so schwer ein I2C zu programmieren. Aber so komfortabel wie das 
"echte" I2C Interface in größeren AVRs ist das nicht.



*
C:\Documents and Settings\sk>avr-gcc -v
Using built-in specs.
Target: avr
Configured with: ../gcc-4.1.2/configure --prefix=/c/WinAVR --target=avr --enable
-languages=c,c++ --with-dwarf2 --enable-win32-registry=WinAVR-20070525 --disable
-nls --with-gmp=/usr/local --with-mpfr=/usr/local --enable-doc --disable-libssp
Thread model: single
gcc version 4.1.2 (WinAVR 20070525)

C:\Documents and Settings\sk>avr-gcc --target-help

Target specific options:
  -mcall-prologues            Use subroutines for function prologues and
                              epilogues
  -minit-stack=STACK          Use STACK as the initial value of the stack
                              pointer
  -mint8                      Use an 8-bit 'int' type
  -mmcu=MCU                   Select the target MCU
  -mno-interrupts             Change the stack pointer without disabling
                              interrupts
  -mno-tablejump              Do not generate tablejump insns
  -mshort-calls               Use rjmp/rcall (limited range) on >8K devices
  -msize                      Output instruction sizes to the asm file
  -mtiny-stack                Change only the low 8 bits of the stack pointer

AVR options:
  -mmcu=[avr-name] select microcontroller variant
                   [avr-name] can be:
                   avr1 - AT90S1200, ATtiny1x, ATtiny28
                   avr2 - AT90S2xxx, AT90S4xxx, AT90S8xxx, ATtiny22
                   avr3 - ATmega103, ATmega603
                   avr4 - ATmega83, ATmega85
                   avr5 - ATmega161, ATmega163, ATmega32, AT94K
                   or immediate microcontroller name.
  -mall-opcodes    accept all AVR opcodes, even if not supported by MCU
  -mno-skip-bug    disable warnings for skipping two-word instructions
                   (default for avr4, avr5)
  -mno-wrap        reject rjmp/rcall instructions with 8K wrap-around
                   (default for avr3, avr5)
Known MCU names:
  avr1 avr2 avr3 avr4 avr5 avr6 at90s1200 attiny10 attiny11 attiny12
  attiny15 attiny28 at90s2313 at90s2323 at90s2333 at90s2343 attiny22
  attiny26 at90s4433 at90s4414 at90s4434 at90s8515 at90s8535 at90c8534
  at86rf401 *attiny13* attiny2313 attiny261 attiny461 attiny861 attiny24
  attiny44 attiny84 attiny25 attiny45 attiny85 atmega603 atmega103
  at43usb320 at43usb355 at76c711 atmega48 atmega8 atmega83 atmega85
  atmega88 atmega8515 atmega8535 atmega8hva at90pwm1 at90pwm2 at90pwm3
  atmega16 atmega161 atmega162 atmega163 atmega164p atmega165 atmega165p
  atmega168 atmega169 atmega169p atmega32 atmega323 atmega324p atmega325
  atmega325p atmega329 atmega329p atmega3250 atmega3250p atmega3290
  atmega3290p atmega406 atmega64 atmega640 atmega644 atmega644p atmega128
  atmega1280 atmega1281 atmega645 atmega649 atmega6450 atmega6490
  atmega16hva at90can32 at90can64 at90can128 at90usb82 at90usb162
  at90usb646 at90usb647 at90usb1286 at90usb1287 at94k atmega2560
  atmega2561

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.