Hallo Experten!
Bin grad am verzeifeln! Wenn ich in meinem Projekt (AVR Studio 4.18 mit
GCC) eine Codezeile einfüge, dann kann ich plötzlich das Programm nicht
mehr via Dragon an den µC (Attiny2313) übertragen!
"Platfrom has been disconnected, leaving debug mode"
(Obwohl der Dragon noch grün leuchtet!)
Was ist da faul?
1 | uint8_t Usi_Send(void)
|
2 | {
|
3 | usi_out_buffer[4] = usi_out_buffer[0]+usi_out_buffer[1]+usi_out_buffer[2]+usi_out_buffer[3];
|
4 | // umschalten auf Master
|
5 | Usi_Master();
|
6 |
|
7 | // prüfen ob Bus frei ist
|
8 |
|
9 | // Startcondition erzeugen
|
10 | PORTB &=~(1<<SDA);
|
11 | PORTB &=~(1<<SCL);
|
12 | USISR |= (1<<USISIF);
|
13 |
|
14 | // Byte laden und Schieberegisterausgang auf SDA legen
|
15 | USIDR = usi_out_buffer[0];
|
16 | PORTB |= (1<<SDA);
|
17 |
|
18 | // warten bis SCL frei
|
19 | PORTB |= (1<<SCL);
|
20 | while(!(PINB & (1<<SCL)));
|
21 |
|
22 | // Daten schieben und auf Kollision achten
|
23 |
|
24 | // PORTB &=~(1<<SCL); Wenn ich diese 2 Zeilen hier einfüge knallts! <<<<<<<<<<<
|
25 | // PORTB |= (1<<SCL);
|
26 |
|
27 |
|
28 | PORTB &=~(1<<SCL);
|
29 | PORTB &=~(1<<SDA);
|
30 | USIDR = 0xFF;
|
31 |
|
32 | // Stoppcondition erzeugen
|
33 | PORTB |= (1<<SCL);
|
34 | PORTB |= (1<<SDA);
|
35 |
|
36 | // umschalten auf Slave
|
37 |
|
38 | return 0;
|
39 | }
|