PDA

View Full Version : Hỏi về ghi EEPROM 24C56B


beanwin
23-05-2009, 09:11 AM
Các bác ơi tìm giúp em lỗi trong chương trình này với. Em ghi dữ liệu từ PC qua RS232 vào EEPROM 24C56B dùng PIC16F877A, nhưng chương trình chỉ ghi đươc được đúng 251 ký tự thì thông báo là Run-time error '6':Overflow -----> tràn. code em viết như sau:

#include <16F877A.h>
#include <24256.c>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

int8 char_rec, char_tr;
long int i; //cũng đã thử với int16 i; nhưng không được.
int1 k_tra;

#int_rda
void rs()
{ char_rec= getc(); k_tra=1; }

void main()
{ enable_interrupts (GLOBAL);
enable_interrupts (INT_RDA);
init_ext_eeprom();

printf("%S","DA KET NOI VOI PIC VA PC");
delay_ms(100);
write_ext_eeprom(1,97);
delay_ms(100);
char_tr = read_ext_eeprom(1);
printf("%C",char_tr);
printf("%S","Neu nhan duoc chu a thi da doc ghi duoc EEPROM");
i=0;
k_tra=0;

while(true)
{
if (k_tra==1)
{
++i;
write_ext_eeprom( i, char_rec);
delay_ms(50);
char_tr = read_ext_eeprom(i);
delay_ms(50);
printf("%C",char_tr);
k_tra=0;
}
if (i>=32768) {printf("%S","EEPROM da day"); } //dung luong cua EEPROM la 32768
}
}

beanwin
23-05-2009, 04:05 PM
Sao mãi chẳng có ai giúp mình vây?. Mình thực sự đang rất cần mà. Các bác cố gắng giúp nhe.