Hej jag håller på och försöker få igång en 3310 display, så jag jag håller på och försöker få igång SPI enheten på en 16F88.
Än så länge håller jag bara på att simulera koden som jag har skrivit. Koden som jag skrivt borde enligt mig resultera i att WCOL: Write Collision Detect bit sätts till ett, eftersom jag hela tiden skriver till SSPBUF. men det gör den inte, dessutom genereras ingen interrupt även fast jag slagit på den enheten/möjligheten.
Du skriver ju till SSPBUF innan den har skickat ut alla bitar, det lär ju betyda att det blir write collision detect. Testa att göra en while loop typ:
SSPBUF = 0xAA;
while (!SSPIF) continue;
Då kommer den inte att fortsätta förrän datat är skickat. Sen skulle du nog kunna skippa interruptet för vad jag vet så har man i princip bara nytta av det i slave mode när man tar emot data.
Jag har inte alls använt PIC, bara Atmel AVR och där brukar Interrupt-flaggor finnas i 8-bitars register tillsammans med en massa andra flaggor. Så min fundering är; måste du inte maska fram SSPIF eller klarar kompilatorn av när man skriver sådär?