Hallo guten morgen, MPLAP 7.60; C18; Als Master nutze ich einen PIC18F4550 Takt 20MHz und Slave PIC18F258 Takt 4MHz. Mein Datenpaket besteht aus 10 Byte. Ein Paket besteht aus 8 Daten Bytes und 2 Quersumme Bytes In Master habe ich SPI Slave Takt "0001 = SPI Master mode, clock = FOSC/16" eingestellt. Beim Slave arbeite ich mit "InterruptVectorHigh = 0x08 und if (PIR1bits.SSPIF == 1)" Slave arbeitet auch mit "InterruptVectorLow = 0x18 und if( PIR1bits.TMR1IF == 1 )" für periodiche Abfrage Master: wieviel Verweilzeit soll zwischen 2 Byte liegen und wieviel zwischen den Datenpakete? Slave: wird "PIR1bits.SSPIF = 0;" am Anfang oder am Ende eingesetzt? z.B. -->> if (PIR1bits.SSPIF == 1) { PIR1bits.SSPIF = 0; ... CODE } oder if (PIR1bits.SSPIF == 1) { ... CODE PIR1bits.SSPIF = 0; } <<-- Mein Paket aus 10 Bytes besteht nutze ich ein Array. Der Counter wird nach dem lesen von SSPBUF um 1 erhöht. wenn alle Bytes übertragen sind, setze ich den Counter wieder auf 0. Wie ist das mit dem Timer Interrupt? Muß ich diesen in der Zeit einer Verarbeitung des SPI Interrupt anhalten ? Kann aber auch gut sein, das der SPI Interrupt in der Verarbeitung des Timer Interrupt kommt. Was dann? Was ist die Minimalste Zeit für den Timer Interrupt ? Soll für den Anfang mal reichen. Gruß Siegfried
Du hast 2 PICs die mit unterschiedlichen Clocks arbeiten und haengst die mit SPI zusammen. Nun koennte es Timingprobleme geben wenn man an das obere Limit der Geschwindigkeit gehen wollte. Das ist richtig erkannt. Muss es denn das obere Limit sein ? Ist die SPI Kommunikation denn wirklich so dringend ? Den Timerinterrupt waehrend der SPI Kommunikation unterbrechen ... Wie oft kommt der Timer interrupt denn ? Und was geschieht falls der verzoegert wird ?
Hallo, Master habe ich geänder in "FOSC/64" "Timer interrupt" Slave war 100 µs, habe dieses auf 1 ms geändert. Dieser wird genutzt, um periodich die Taster abzufragen. Gruß Siegfried
Möglich wäre zb eine zusätzliche Verbindung der beiden µC mit der der slave dem Master "mitteilen" kann das er für das nächste Byte bereit ist. Stichwort: Busyline
hallo, "Möglich wäre zb eine zusätzliche Verbindung der beiden µC mit der der slave dem Master "mitteilen" kann das er für das nächste Byte bereit ist. " leider nicht Möglich. Hardware besteht schon. Gruß Siegfried
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.