Forum: Mikrocontroller und Digitale Elektronik TWI Bus Programmieren


von Thomas (Gast)


Lesenswert?

Hallo Leute!
Ich habe ein Problem!
Ich müsste einen TWI BUS zwischen meinen Slave und Master programmieren.
Der Slave besteht aus Schalter welche mir beim drücken Leds schalten. 
Nun müsste ich so wie bei einem Parkhaus mit zählen wie viele Schalter 
noch nicht gedrückt sind und das ergebnis dann bei meinem Display 
welches am Master angeschlossen ist anzeigen! Hat jemand eine Ideewie 
das geht??
Programmiert wird im AVR Studio 4 in C.

Mit freundlichen Grüßen

von Mike (Gast)


Lesenswert?

Thomas schrieb:
> Hat jemand eine Ideewie das geht??

TWI ist das gleiche wie I²C. Die unterschiedliche Bezeichnung hat nur 
patentrechtliche Gründe.

von Thomas (Gast)


Lesenswert?

Jadas weiß ich schon finde aber nirgendwo Beispiele wie ich den Bus 
programmieren muss das es funktioniert!
mfg

von innerand i. (innerand)


Lesenswert?

Thomas schrieb:
> Hat jemand eine Ideewie das geht??

Mhm, grundsätzlich schalter zählen und das Ergebnis dann über den Bus 
zum Master schieben.
Das können S' jetzt ja mal machen. Falles sie dabei auf ein konkretes 
Problem stoßen kommen S' wieder.

von Parkwächter (Gast)


Lesenswert?

Ich verstehe irgendwie nur Parkhaus.

von Thomas (Gast)


Lesenswert?

Ich kenne mich aber leider mit der Programmierung des Buses nicht aus 
und bräuchte deshalb ein beispiel wie ich die Programmierung angehen 
kann!

von Parkwächter (Gast)


Lesenswert?


von Thomas (Gast)


Lesenswert?

1
#define F_CPU 1000000UL
2
#include <avr/io.h>
3
#include <stdlib.h>
4
#include <stdio.h>
5
#include <avr/interrupt.h>
6
#include <util/delay.h>
7
#include "TWI_Bus.h"
8
9
char i;
10
11
int main (void)
12
{
13
14
  unsigned char awert, ewert;
15
16
  DDRB= 0xFF; 
17
  
18
19
  init(FAKTOR,TEILER);               
20
while(1)                  
21
{
22
23
  awert=PIND;                
24
  send(AUSAD, ~awert);
25
  ewert = empf(EINAD);
26
  PORTB = ewert;            
27
  _delay_ms(50);
28
29
} // Ende while
30
31
}

von Thomas (Gast)


Lesenswert?

Diesen code habe ich aus einem c-buch, aber es funktioniert komischer 
weise nicht.

von Parkwächter (Gast)


Lesenswert?

Mit copy&paste wirst du auch nicht weiter kommen.

Dir ist nicht im geringsten klar, wie I2C funktioniert, dass es 
Adressen, Lese- und Schreibbits gibt, dass man wissen muss, welche 
Register der Slave hat, wie man diese anspricht und was man damit 
anfangen kann.
Ohne Informationen über deinen I2C Slave kann dir auch keiner helfen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.