Guten morgen,
zu dem SLIP Treiber muss ich jetzt doch was schreiben, weil ich einen Problem habe.
Ich habe 1 Master Platine mit einem AtXmega256 und 3 Slave Platinen mit AtMega 328p
Das Senden an die Slave geht 100 % das haut Super hin, aber wenn ich einen Slave zb. Platine1
auffordere ein wert zu Senden bekomme ich einen Crash ?! ich muss alle anderen Slave Platinen
abziehen und dann gehts.
Ich verstehe es nicht, hier mal meine einträge..
Vllt hat jmd von euch eine Idee?
Master Platine AtXmega256
Import SysTick, SerPortE1;
Define
SLIPportE1 = 100000; Master;
....
// Addr2=Platine1 Addr3=Platine2 Addr4=Platine3
SLIPsetTxAddrE1(2); // Slave Platinen 1 eingestellt mit Addr 2
SLIPsetRxAddrE1(1); // Ich bin Master 1
SLIPsetModeE1([slpAddr]); // slpHsk, slpChkS]);
SLIPsetTimeOutE1(10); // timeout used for handshake
SLIPsetRxBufferE1(@RxBuffE1, sizeOf(RxBuffE1));
SLIPsetTxBufferE1(@TxBuffE1, 32);
SLIPresumeRxE1; // enable receive on portE1
Slave Platine1 AtMega328p
Import SysTick, SLIPport1;
Define
SLIPport1 = 100000;
....
SLIPsetTxAddr1(1); //1 // Master Adresse 1
SLIPsetRxAddr1(2); // Slave Adresse 2 Platine 1
SLIPsetMode1([slpAddr]); // slpHsk, slpChkS]);
SLIPsetTimeOut1(10);
SLIPsetRxBuffer1(@RxBuff, sizeOf(RxBuff));
SLIPsetTxBuffer1(@TxBuff, 32);
SLIPresumeRx1;
Slave Platine2 AtMega328p
Import SysTick, SLIPport1;
Define
SLIPport1 = 100000;
....
SLIPsetTxAddr1(1); //1 // Master Adresse 1
SLIPsetRxAddr1(3); // Slave Adresse 3 Platine 2
SLIPsetMode1([slpAddr]); // slpHsk, slpChkS]);
SLIPsetTimeOut1(10);
SLIPsetRxBuffer1(@RxBuff, sizeOf(RxBuff));
SLIPsetTxBuffer1(@TxBuff, 32);
SLIPresumeRx1;
Slave Platine3 AtMega328p
Import SysTick, SLIPport1;
Define
SLIPport1 = 100000;
....
SLIPsetTxAddr1(1); //1 // Master Adresse 1
SLIPsetRxAddr1(4); // Slave Adresse 4 Platine 3
SLIPsetMode1([slpAddr]); // slpHsk, slpChkS]);
SLIPsetTimeOut1(10);
SLIPsetRxBuffer1(@RxBuff, sizeOf(RxBuff));
SLIPsetTxBuffer1(@TxBuff, 32);
SLIPresumeRx1;
Gruß Frank
zu dem SLIP Treiber muss ich jetzt doch was schreiben, weil ich einen Problem habe.
Ich habe 1 Master Platine mit einem AtXmega256 und 3 Slave Platinen mit AtMega 328p
Das Senden an die Slave geht 100 % das haut Super hin, aber wenn ich einen Slave zb. Platine1
auffordere ein wert zu Senden bekomme ich einen Crash ?! ich muss alle anderen Slave Platinen
abziehen und dann gehts.
Ich verstehe es nicht, hier mal meine einträge..
Vllt hat jmd von euch eine Idee?
Master Platine AtXmega256
Code
Import SysTick, SerPortE1;
Define
SLIPportE1 = 100000; Master;
....
// Addr2=Platine1 Addr3=Platine2 Addr4=Platine3
SLIPsetTxAddrE1(2); // Slave Platinen 1 eingestellt mit Addr 2
SLIPsetRxAddrE1(1); // Ich bin Master 1
SLIPsetModeE1([slpAddr]); // slpHsk, slpChkS]);
SLIPsetTimeOutE1(10); // timeout used for handshake
SLIPsetRxBufferE1(@RxBuffE1, sizeOf(RxBuffE1));
SLIPsetTxBufferE1(@TxBuffE1, 32);
SLIPresumeRxE1; // enable receive on portE1
Slave Platine1 AtMega328p
Code
Import SysTick, SLIPport1;
Define
SLIPport1 = 100000;
....
SLIPsetTxAddr1(1); //1 // Master Adresse 1
SLIPsetRxAddr1(2); // Slave Adresse 2 Platine 1
SLIPsetMode1([slpAddr]); // slpHsk, slpChkS]);
SLIPsetTimeOut1(10);
SLIPsetRxBuffer1(@RxBuff, sizeOf(RxBuff));
SLIPsetTxBuffer1(@TxBuff, 32);
SLIPresumeRx1;
Slave Platine2 AtMega328p
Code
Import SysTick, SLIPport1;
Define
SLIPport1 = 100000;
....
SLIPsetTxAddr1(1); //1 // Master Adresse 1
SLIPsetRxAddr1(3); // Slave Adresse 3 Platine 2
SLIPsetMode1([slpAddr]); // slpHsk, slpChkS]);
SLIPsetTimeOut1(10);
SLIPsetRxBuffer1(@RxBuff, sizeOf(RxBuff));
SLIPsetTxBuffer1(@TxBuff, 32);
SLIPresumeRx1;
Slave Platine3 AtMega328p
Code
Import SysTick, SLIPport1;
Define
SLIPport1 = 100000;
....
SLIPsetTxAddr1(1); //1 // Master Adresse 1
SLIPsetRxAddr1(4); // Slave Adresse 4 Platine 3
SLIPsetMode1([slpAddr]); // slpHsk, slpChkS]);
SLIPsetTimeOut1(10);
SLIPsetRxBuffer1(@RxBuff, sizeOf(RxBuff));
SLIPsetTxBuffer1(@TxBuff, 32);
SLIPresumeRx1;
Gruß Frank