Hallo
habe ein Problem mit I2C Bus zu USI mit Master und Slave. Versuche das
Problem zu erklären
Hardware Slave:
- ATTIny 2313
- Port B als Ausgang mit 8 x LED
- PIN PD0, PD1, PD2 Taster zur Eingabe
- PIN PD3, PD4, PD5 3 x LED zur Anzeige
Hardware Master:
- Atmega 1284p
- Port A als Ausgang mit 8 x LED
- PIN PC4, PC3, PC2 Taster zur Eingabe
Bedienung:
Betätige am Master entweder Taster am PC2 oder PC4 und es leuuchten die
LEDs am Slave
Dabei verwende ich die Datein von Peter und JP ohne änderung
Für den Slave verwende ich folgenden Code:
1 | while(1)
|
2 | {
|
3 |
|
4 | //############################################ Daten aus dem Eingangspuffer lesen
|
5 | gyte1 = rxbuffer[0];
|
6 |
|
7 | //############################################################################
|
8 | */
|
9 |
|
10 | if (gyte1==43)
|
11 | {
|
12 | //PORTD &=~(1<<PIND3); // LED Kontrolle ein
|
13 | //PORTD |=(1<<PIND4); // LED Kontrolle aus
|
14 | PORTB &=~(1<<PINB3); // LED Kontrolle ein
|
15 | PORTB |=(1<<PINB4); // LED Kontrolle aus
|
16 |
|
17 |
|
18 | }
|
19 |
|
20 |
|
21 | if (gyte1==42)
|
22 | {
|
23 | //PORTD &=~(1<<PIND4); // LED Kontrolle ein
|
24 | //PORTD |=(1<<PIND3); // LED Kontrolle aus
|
25 |
|
26 | PORTB &=~(1<<PINB4); // LED Kontrolle ein
|
27 | PORTB |=(1<<PINB3); // LED Kontrolle aus
|
28 |
|
29 | }
|
30 |
|
31 | if (gyte1==44)
|
32 | {
|
33 | PORTD &=~(1<<PIND5); // LED Kontrolle ein
|
34 | //PORTD |=(1<<PD3); // LED Kontrolle aus
|
35 | }
|
36 | else
|
37 | {
|
38 | PORTD |=(1<<PIND5); // LED Kontrolle aus
|
39 | }
|
40 | }
|
41 | }
|
Fehlerbeschreibung:
Beim Betätigen der Taster auf dem Master werden die Daten korrekt zum
Slave übertragen und die eingestellten LED leuchten.
Zusätzlich leuchten beim Betätigen der Taster auf dem Master die LED am
Slave mit dem Attiny 2313 Port B, die Pins PB7 und PB5.
Egal welche Ausgange ich schalte, welche Port oder Pins ich ausschalte
oder sonst was, an diesen beiden Pins leuchten immer beim Betätigen der
Taster am Master die beiden LEDs.
Warum ?
achim