Em đang làm đồ án về mảng này, tình hình rất gấp, ACE trên 4rum ai làm về cái này chưa giúp em cái
code master
code slave
và đây là hình ảnh của nó (file đính kèm)
vấn đề của em là code sai chổ nào sao mà slave không thể truyền lên master được
Mong hồi âm của mọi người
code master
Code:
// RE DE: 0 nhan - 1 phat #include <16f887.h> #device *=16 ADC=10 #fuses hs,nowdt,noput,noprotect,nobrownout,nolvp,nocpd,nodebug #use delay(clock=4000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stop=1) #include <stdio.h> #include <lcd_lib_4bit.c> #bit EN_RS485=0x07.5 int8 value[4],n, flag=0; #INT_RDA void RDA_isr (void) { value[n]=getc(); if(value[n]=='#') { lcd_putcmd(line_1); printf(lcd_putchar,"%u",value[0]-0x30); printf(lcd_putchar,"%u",value[1]-0x30); printf(lcd_putchar,"%u",value[2]-0x30); n=0; } else n++; } void main() { set_tris_d(0x00); set_tris_c(0b10000000); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); lcd_init(); n=0; while(true) { if(value[3]!='#') { EN_RS485=1; printf("123@"); } else { EN_RS485=0; } } }
Code:
// RE DE: 0 nhan - 1 phat #include <16f887.h> #device *=16 adc=10 #fuses hs,nowdt,noput,noprotect,nobrownout,nolvp,nocpd,nodebug #use delay(clock=4000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stop=1) #include <stdio.h> #include <lcd_lib_4bit.c> #bit EN_RS485=0x07.5 int8 value[4],n,flag=0; #INT_RDA void RDA_isr (void) { value[n]=getc(); if(value[n]=='@') { lcd_putcmd(line_1); printf(lcd_putchar,"%u",value[0]-0x30); printf(lcd_putchar,"%u",value[1]-0x30); printf(lcd_putchar,"%u",value[2]-0x30); n=0; } else {n++;} } void main() { set_tris_c(0b10000000); set_tris_d(0x00); enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); lcd_init(); n=0; while(true) { if(value[3]!='@') EN_RS485=0; else { EN_RS485=1; printf("456#"); } } }
vấn đề của em là code sai chổ nào sao mà slave không thể truyền lên master được
Mong hồi âm của mọi người
Comment