after resetting pic, problem solves but i can't do it while it is running. as far as i think, it is an overflow error. because when i send another packet before it is "sending the data package back to pc" operation complete, problem occurs... using buffer or overflow error cause this problem...Code:DEFINE OSC 4 DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 0 DEFINE LCD_EREG PORTD DEFINE LCD_EBIT 5 DEFINE LCD_RSREG PORTD DEFINE LCD_RSBIT 6 DEFINE LCD_RWREG PORTD DEFINE LCD_RWBIT 4 DEFINE LCD_BITS 4 DEFINE LCD_Lines 2 DEFINE HSER_RCSTA 90h'%10010000 DEFINE HSER_TXSTA 24h'%00100100 DEFINE HSER_CLROERR 1 DEFINE HSER_BAUD 9600 DEFINE HSER_SPBRG 25 B var word i var byte H VAR BYTE[128] G VAR BYTE[128] TEMP VAR BYTE symbol LED=PORTE.1 SYMBOL SCL=PORTC.3 SYMBOL SDA=PORTC.4 DATAYAZMA CON $A0 DATAOKUMA CON $A1 ZAMANYAZMA CON $D0 ZAMANOKUMA CON $D1 BEKLE CON 25 TRISA.0=1 TRISC.7=1 TRISC.6=0 TRISE.1=0 INTCON = %11000000 ' enable global and peripheral and portb change interrupts PIE1.5=1 'enable rx interrupt PIR1.5=0 LCDOUT $FE,1,"merhaba" pause 2000 On Interrupt GoTo KESME B=0 BASLA: LCDOUT $FE,1 For i=0 to 127 H[i]=0 G[i]=0 NEXT GOTO BASLA Disable KESME: For i = 0 to 127 HSERIN [HEX2 H[i]] nEXT i i2cwrite sda,SCL,datayazma,B,[str H\128] pause bekle i2cread sda,SCL,DATAYAZMA,B,[STR G\128] For i = 0 to 127 HSEROUT[HEX2 G[i]] IF i // 20 = 0 THEN HSEROUT[13] ELSE HSEROUT[","] ENDIF NEXT HSEROUT[13, "-bitti-", 13] PIR1.5=0 Resume Enable End
Bookmarks