Ich hab auf genau diesem 18F4585 den SPI mit Tmr2 am Laufen. Taktquelle ist bei mir der interne Oszillator. Das sollte aber erst mal kein Problem sein.
Mit der von dir verwendeten Notation bin ich nicht vertraut. T2OUTPS sind 3 Bits und T2CKPS sind 2 Bits. Werden diese durch die verwendete Notation gesetzt?
Bei mir sieht es wie folgt aus:
T2CON = 0b01111101; /*
||||||**--- Prescaler 01 --> 1:4
|||||*----- 1=TimerOn
|****------ Postscaler - Postscaler does not influence Clock Rate of SPI!
* --------- not used */
PR2 = 54; // PR2 = 54 results in 18.2 kHz SPI clock rate. (INTOSC + PLL)
SSP1STAT = 0b01000000;
SSP1CON1 = 0b00100011; /* Enable SSP,Timer2 Clock 1/2, CKP 1 (SSP2CON1=0x33)
||||****--- Serial Port Mode Select. 0011 -> Clock Tmr2/2
|||*------- Clock Polarity Select 1: idle state is high. 0: idle state is low
||*-------- SSP Enable
**--------- Overflow and Collision detect bits */
du hast im SSP1CON1 Register den Tmr2 ausgewählt?
Gruß
Wolfgang