Hi Everyone;
I made this program and works fine at 9600 or 2400bps, however if i put at for exemple 57600 or 19200, i don't receive the the chars correctly, can somebody help me;
PIC16F877A
4Mhz
Thanks
Code:Code:include "modedefs.bas" DEFINE OSC 4 ' VARIÁVEIS ' ==================================================================== DADOS var byte(4) ID var byte(2) ' REGISTOS PINOUT 1 = IN; 0 = OUT ' ==================================================================== '76543210 TRISA = %00000001 TRISB = %00001111 TRISC = %10000000 TRISD = %00000000 TRISE = %00000000 ADCON1 = 7 ' NOMES PINOUT ' ==================================================================== LED VAR PORTA.1 TX Var PORTC.6 RX VAR PORTC.7 ' DEFINIÇÕES ' ==================================================================== DEFINE LCD_DREG PORTB ' LCD Data bits on PORTB DEFINE LCD_DBIT 4 ' PORTB starting address DEFINE LCD_RSREG PORTB ' LCD RS bit on PORTB DEFINE LCD_RSBIT 3 ' LCD RS bit address DEFINE LCD_EREG PORTB ' LCD E bit on PORTB DEFINE LCD_EBIT 2 ' LCD E bit address DEFINE LCD_BITS 4 ' LCD in 4-bit mode DEFINE LCD_LINES 2 ' LCD has 2 rows DEFINE LCD_COMMANDUS 2000 ' Set command delay time in us DEFINE LCD_DATAUS 50 ' Set data delay time in us DEFINE HSER_RCSTA 90h DEFINE HSER_TXSTA 24h DEFINE HSER_BAUD 9600 DEFINE HSER_SPBRG 25 ' INICIO PROGRAMA ' ==================================================================== Start: LCDOUT $fe, 1 lcdout " Teste USB" lcdout $FE,$C0," Por Hugo Oliveira" pause 2000 Main: toggle led hserout ["Hugo "] lcdout " Teste USB" lcdout $FE,$C0," Hugo " Pause 2000 toggle led hserout ["Oliveira",cr] LCDOUT $fe, 1 lcdout " Teste USB" lcdout $FE,$C0," Oliveira " Pause 2000 low led ' Rotina que espera por trama, ID, e Valor e compara ' ==================================================================== Recebe: Hserin [wait("OK"),STR ID\2,str DAdos\4] if id(0)="3" and id(1)="2" then if DADOS(0)="H" and DADOS(1)="u" and DADOS(2)="g" and DADOS(3)="o" then high led LCDOUT $fe, 1 lcdout " Teste USB" lcdout $FE,$C0,"Recebido H " endif if DADOS(0)="L" and DADOS(1)="u" and DADOS(2)="L" and DADOS(3)="u" then low led LCDOUT $fe, 1 lcdout " Teste USB" lcdout $FE,$C0,"Recebido L " endif if DADOS(0)<>"L" and DADOS(0)<>"H" then LCDOUT $fe, 1 lcdout " Teste USB" lcdout $FE,$C0,"Recebido :",DADOS(0),DADOS(1),DADOS(2),DADOS(3) endif endif goto Recebe END


 
			 
			 
			 
					
					 RS232  Baud Rate
 RS232  Baud Rate
		 
				
				
				
				
			

Bookmarks