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
Thomas schrieb: > Hat jemand eine Ideewie das geht?? TWI ist das gleiche wie I²C. Die unterschiedliche Bezeichnung hat nur patentrechtliche Gründe.
Jadas weiß ich schon finde aber nirgendwo Beispiele wie ich den Bus programmieren muss das es funktioniert! mfg
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.
Ich kenne mich aber leider mit der Programmierung des Buses nicht aus und bräuchte deshalb ein beispiel wie ich die Programmierung angehen kann!
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 | }
|
Diesen code habe ich aus einem c-buch, aber es funktioniert komischer weise nicht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.