PIC et compilateur CCS PCWH

Bonjour,

Je suis entrain d'écrire un petit programme pour PIC avec le compilateur C CCS-PCWH.

Je voudrais utiliser les mêmes pattes du PIC alternativement en I/O normales et en I/O d'un bus SPI. Je me demande comment gèrer cela ?

Dois-je utiliser la directive #bit SSPEN ?

#bit SSPEN = 0x14.5 // SSPEN=0 --> IO ports, SSPEN=1 --> SPI ports

puis une directive #use spi comme ci-après ?

#use spi (DI=PIN_C4, DO=PIN_C5, CLK=PIN_C3)

Ou bien y-a-t-il une manière plus naturelle ?

merci pour vos réponses

Reply to
ernest
Loading thread data ...

Bonjour,

Je suis entrain d'écrire un petit programme pour PIC avec le compilateur C CCS-PCWH. Mon PIC, un 16F886, dispose de fonctionnalités SPI hardware résidentes.

Je voudrais utiliser les mêmes pattes du PIC alternativement en I/O normales et en I/O d'un bus SPI. Je me demande comment gèrer cela ?

Dois-je utiliser la directive #bit SSPEN ?

#bit SSPEN = 0x14.5 // SSPEN=0 --> IO ports, SSPEN=1 --> SPI ports

puis une directive #use spi comme ci-après ?

#use spi (DI=PIN_C4, DO=PIN_C5, CLK=PIN_C3)

Ou bien y-a-t-il une manière plus naturelle ?

merci pour vos réponses

Reply to
ernest

"ernest" a écrit dans le message de news:

4c4fd925$0$27574$ snipped-for-privacy@reader.news.orange.fr...

============ Les "33" directives du pré-processeur "#use spi( .... / ..... ) sont plus que suffisantes pour activer la fonction SPI sans oublier l'option "STREAM=id" . Ce n'est pas très courant mais une fois redirigées , les pins C3 -C5 pourraient peut-etre servir à autre chose, mais le problème est que le composant SPI connecté devra etre physiquement débranché . En tous cas, cela ne te coûtera rien d'essayer ....

Reply to
maioré

En pratique j'=E9vite au maximum l'usage de directives propri=E9taires qui ne sont pas portables entre compilos. Ecris plutot des fonctions ValideSPI() et DevalideSPI() contenant le code d'init (ou de d=E9validation) du port SPI avec les acc=E8s voulus aux registres du PIC, que tu appelleras lors du runtime suivant les besoins.

Maintenant, lors du switch entre le composant SPI externe et le(s) composant(s) externe(s) sur les I/O, comment vas-tu isoler physiquement la SPI et ces I/O ? Sans doute avec des portes, mais alors il faudra bien les commander avec une autre pinouille du PIC.

Dans ce cas, autant assigner d=E9finitivement des pinouilles =E0 la SPI et d'autres =E0 tes I/O : ce sera plus stable qu'un switch en runtime, tu n'auras pas =E0 impl=E9menter de d=E9lais supp=E9mentaires, et ca =E9vitera d'=E9ventuels probl=E8mes lors de la commutation, dus =E0 des directives obscures (et d=E9pendantes du compilo)

Reply to
Jean-Christophe

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.