PIC et compilateur CCS PCWH

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From French to

Threaded View
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

Re: PIC et compilateur CCS PCWH
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

Re: PIC et compilateur CCS PCWH

4c4fd925$0$27574$ snipped-for-privacy@reader.news.orange.fr...
Quoted text here. Click to load it
============
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 ....





Re: PIC et compilateur CCS PCWH

Quoted text here. Click to load it

En pratique j'E9%vite au maximum l'usage de directives
propriE9%taires qui ne sont pas portables entre compilos.
Ecris plutot des fonctions ValideSPI() et DevalideSPI()
contenant le code d'init (ou de dE9%validation) du port
SPI avec les accE8%s 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 dE9%finitivement
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% implE9%menter de dE9%lais suppE9%mentaires,
et ca E9%vitera d'E9%ventuels problE8%mes lors de la commutation,
dus E0% des directives obscures (et dE9%pendantes du compilo)

Site Timeline