PIC données série

M

miryazdan

Guest
bonjour

plz m'aider dans l'écriture du code en C pour PIC transmittimg de données en série ......

 
Vous ca Unse printf dans le compilateur CCS.pour des exemples chercher cet ebook: programmation en C microcontrôleur PIC en Gadner nigel

 
Si vous utilisez le CCS:

Code:////////////////////////////////////////////////// ///////////////////////

/ / / / EX_ENCRY.C / / / /

/ / / / / / / /

/ / / / Ce programme montre comment mettre en œuvre deux ports série / / / /

/ / / / Transfert de données entre les ports et à crypter / décrypter / / / /

/ / / / Les données sur une face d'un lien de communication sécurisé. / / / /

/ / / / / / / /

/ / / / ------ ----- ----- ------ / / / /

/ / / / | PC | | PIC | | Pic | PC | | / / / /

/ / / / | A |====| A |=============| B |====| B | / / / /

/ / / / ------ ----- ----- Sécurisé ------ / / / /

/ / / / Machine / / / /

/ / / / / / / /

/ / / / Configuration de la carte prototype de CSC, comme décrit ci-dessous. / / / /

/ / / / / / / /

/ / / / Cet exemple va travailler avec l'AFL.
Le / / / /

/ / / / Après des lignes de compilation conditionnelles sont utilisées pour inclure un / / / /

/ / / / Périphérique valide pour chaque compilateur. Changer le périphérique, une horloge et / / / /

/ / / / Broches RS232 pour votre matériel si nécessaire. / / / /

////////////////////////////////////////////////// ///////////////////////

/ / / / (C) Copyright 1996,2003 Custom Computer Services / / / /

/ / / / Ce code source mai seulement être utilisé par des utilisateurs sous licence de la CCS / / / /

/ / / / C compilateur. Ce code source mai uniquement être distribué à d'autres / / / /

/ / / / Sous licence aux utilisateurs du compilateur C CCS. Aucun autre usage, / / / /

/ / / / Reproduction ou distribution n'est permise sans la permission écrite / / / /

/ / / / Permission. Dérivés des programmes créés à l'aide de ce logiciel / / / /

/ / / / Sous forme de code objet ne sont pas restreints d'aucune façon. / / / /

////////////////////////////////////////////////// ///////////////////////# if defined (__PCM__)

# include <16F877.h>

# fuses HS, NOWDT, NOPROTECT, NOLVP

# use delay (clock = 20000000)# elif defined (__PCH__)

# include <18F452.h>

# fuses HS, NOWDT, NOPROTECT, NOLVP

# use delay (clock = 20000000)

# endif# define BUFFER_SIZE 32////////////////////////////////////////////////// /////////////// PORT 1

# use RS232 (baud = 9600, xmit = PIN_C6, AN = PIN_C7)byte buffer1 [BUFFER_SIZE];

next_in1 octet = 0;

next_out1 octet = 0;# int_rda

void serial_isr1 () (

int t;buffer1 [next_in1] = getc ();

t = next_in1;

next_in1 = (next_in1 1)% TAILLE_BUFFER;

if (next_in1 == next_out1)

next_in1 = t; / / tampon plein!

)# define bkbhit1 (next_in1! = next_out1)byte bgetc1 () (

byte c;while (! bkbhit1);

c = buffer1 [next_out1];

next_out1 = (next_out1 1)% TAILLE_BUFFER;

return (c);

)void putc1 (char c) (

putc (c);

)////////////////////////////////////////////////// /////////////// PORT 2

# use RS232 (baud = 9600, xmit = PIN_B1, rcv = PIN_B0)byte buffer2 [BUFFER_SIZE];

next_in2 octet = 0;

next_out2 octet = 0;# int_ext

void serial_isr2 () (

int t;buffer2 [next_in2] = getc ();

t = next_in2;

next_in2 = (next_in2 1)% TAILLE_BUFFER;

if (next_in2 == next_out2)

next_in2 = t; / / tampon plein!

)# define bkbhit2 (next_in2! = next_out2)byte bgetc2 () (

byte c;while (! bkbhit2);

c = buffer2 [next_out2];

next_out2 = (next_out2 1)% TAILLE_BUFFER;

return (c);

)void putc2 (char c) (

putc (c);

)////////////////////////////////////////////////// /////////////////////////////////////void main () (

char c;enable_interrupts (globale);

enable_interrupts (int_rda);

enable_interrupts (int_ext);printf (putc2, "\ r \ n \ Running ... \ r \ n");do (

if (bkbhit1) (

c = bgetc1 ();

putc2 (c);

)

if (bkbhit2) (

c = bgetc2 ();

putc1 (c);

)

) While (TRUE);

)

 

Welcome to EDABoard.com

Sponsor

Back
Top