mocdailam
02-05-2009, 02:11 AM
mấy anh kiểm tra dùm em với. em muốn nhận một string từ máy lưu vào text[] không biết lỗi ở đâu mà nó không nhận đúng.
#include <18F4550.h>
#device *=16 ADC=8
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=20M)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,bits=8)
...
#int_rda
void rcv_data()
{
char key;
int8 ii=0;
disable_interrupts(INT_RDA);
disable_interrupts(INT_TIMER0);
// gets(text);
key = getc();
chedo = key;// phan tu dau tien cua goi tin la phan tu chon che do
tt=2;
do
{
//if(kbhit())
key = getc();
putc(key);
text[ii]=key;
ii++;
if ( ii>text_max) break;
}while (key !='\0');
enable_interrupts(INT_RDA);
enable_interrupts(INT_TIMER0);
}
...
//ham main()
void main()
{
int8 g,n,itext=0,ich=0,demp=0,k,kt=1;
set_tris_b(0);
set_tris_d(0);
set_tris_c(0b10000001);
setup_timer_0( RTCC_INTERNAL |RTCC_DIV_64|RTCC_8_BIT);
set_timer0(0);
enable_interrupts(INT_RDA);
enable_interrupts(global);
enable_interrupts(int_timer0);
#include <18F4550.h>
#device *=16 ADC=8
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=20M)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,bits=8)
...
#int_rda
void rcv_data()
{
char key;
int8 ii=0;
disable_interrupts(INT_RDA);
disable_interrupts(INT_TIMER0);
// gets(text);
key = getc();
chedo = key;// phan tu dau tien cua goi tin la phan tu chon che do
tt=2;
do
{
//if(kbhit())
key = getc();
putc(key);
text[ii]=key;
ii++;
if ( ii>text_max) break;
}while (key !='\0');
enable_interrupts(INT_RDA);
enable_interrupts(INT_TIMER0);
}
...
//ham main()
void main()
{
int8 g,n,itext=0,ich=0,demp=0,k,kt=1;
set_tris_b(0);
set_tris_d(0);
set_tris_c(0b10000001);
setup_timer_0( RTCC_INTERNAL |RTCC_DIV_64|RTCC_8_BIT);
set_timer0(0);
enable_interrupts(INT_RDA);
enable_interrupts(global);
enable_interrupts(int_timer0);