Escolar Documentos
Profissional Documentos
Cultura Documentos
h>
#fuses HS,NOWDT,NOPROTECT,BROWNOUT,PUT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS)
//============================
void main()
{
char c;
while(1)
{
c = getc();
putc(c);
}
}
// protocolo modbus
//
//microcontrolador : microchip
//compilador : CCS
//autor : aguivone
//data : 23/11/2010
//descrio : calculando o crc no modbus;
//..............................................................................
....................
#include <16F877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20M)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)//,enable=PIN_D4)
//////////////////////////////////////////declarao das variaveis//////////////////
/////////////////
unsigned char buf_485[30];
unsigned char CRC_bytes[2];//cria um vetor para armazenar o valor do crc
///////////////////////////////////////////////funoes usadas/////////////////////
////////////////////
void Calculo_CRC(unsigned int num_of_char,unsigned char *ptr_num)//,register uns
igned int checksum) checksum = 0XFFFF
{
//variaveis local
char i,j;
//resultado do crc
long checksum = 0XFFFF;
for (i=0; i < num_of_char; i++)
{
// executa uma operao
// pega proximo caracter da sequencia(rotaciona uma unidade a direita no v
etor)
checksum ^= *ptr_num;
ptr_num++;