![]() |
|
![]() |
#1 |
Đệ tử 4 túi
Tham gia ngày: Jul 2007
Bài gửi: 66
: |
lệnh ghi eeprom nội của pic ntn?
tôi viết = CCS,tôi dùng lệnh ghi lên eeprom nội của pic,thấy trong tài liệu CCS help nói lệnh này thực hiện trong vài mili giây,vậy nếu lệnh đang thực hiện mà xảy ra ngắt thì có ảnh hưởng gì ko?theo đúng lý thuyết chương trình sẽ nhảy vào ngắt và khi thực hiện ngắt xong thì quay lại làm tiếp,vấn đề tài ngắt tôi xài là ngắt pwm tần số 20Khz(50us),vậy thì nhảy ra nhảy vào mấy chục lần mới xong cái lệnh ghi eeprom,như vậy còn đảm bảo chuơng trình thực hiện chính xác ko?tôi xài con pic18f4331
|
![]() |
![]() |
![]() |
#2 |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 100
: |
Trước khi ghi vào EEPROM trong phải cấm tất cả các ngắt (xoá bit GIE đi). Ghi xong mới set lại nó =1. Trong datashet của PIC có nói đến việc này mà.
__________________
Do more than exist, LIVE |
![]() |
![]() |
![]() |
#3 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#4 |
Đệ tử 4 túi
Tham gia ngày: Jul 2007
Bài gửi: 66
: |
cảm ơn bác đã giải thích,cái chổ bác nói phải cấm ngắt trước khi ghi eeprom là trong tài liệu nào vậy?nếu có thể bác cho biết trang luôn nhé,điều này có bắt buộc ko?tức là nếu ghi eeprom mà ko cấm ngắt thì ko ghi được sao?cám ơn
|
![]() |
![]() |
![]() |
#5 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 154
: |
mình cũng đang tìm hiểu về eeprom. đã đọc trong help của ccs rồi mã vẫn không hiểu.
mình cũng đã tìm hết diễn đàn rồi mà cũng chưa có bài viết nào hoàn chỉnh về eeprom để tham khảo cả. ai có bài nào thì port lên cho mình tham khảo với. hi hi |
![]() |
![]() |
![]() |
#7 |
Đệ tử 7 túi
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
: |
đây là 1 cái code ng bạn mới đưa cho tui !
Code:
void write_ext_eeprom(unsigned char address, unsigned char data) { start(); write(0xa0); write(address); write(data); stop(); DelayMs(11); } /****************************** ****************************** ******************************/ unsigned char read_ext_eeprom(unsigned char address) { unsigned char data; start(); write(0xa0); write(address); repStart(); write(0xa1); data=read(0); stop(); return(data); } /****************************** ****************************** ******************************/ void main() { unsigned char i=0; PORTB=0x00; // port PORTC=0x00; // port TRISB=0x00; //portb out TRISC=0x00; //portc out init(); // while(i<=10) /* Viet 10 so vao eeprom */ //dung yeu cau roi nhe { PORTB=i; // xuat ra cho nao do. de de nhan biet moi lan vietnao eprom cho xuat ra led write_ext_eeprom(i,i); // viet vao eprom i++; DelayMs(255); } PORTB=0xff; // sang led DelaySec(1); PORTB=0x00; DelaySec(1); i=0; while(i<=10) { PORTB=i; // dia chi nay se doc tu eprom den led DelayMs(255); PORTB=0x00; // leds tat DelayMs(255); PORTB=read_ext_eeprom(i); // bo nho se chi cho led sang DelayMs(255); i++; } } /****************************** ****************************** ******************************/ |
![]() |
![]() |
![]() |
#8 |
Đệ tử 7 túi
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
: |
tungtot_vl thử & cho ý kiến
|
![]() |
![]() |
![]() |
#9 |
Đệ tử 4 túi
Tham gia ngày: Jul 2007
Bài gửi: 66
: |
thật ra để ghi và đọc eeprom của pic chỉ cần dùng lệnh hàm write_eeprom(địa chỉ,giá trị);
read_eeprom(địa chỉ); đã được cung cấp sẵn,có điều như đã nói ở trên,khi ghi phải cấm tất cả các ngắt và ghi xong cho phép ngắt lại,tại sao phải như vậy thì coi bài bác Nam post ở trên |
![]() |
![]() |
![]() |
#10 |
Đệ tử 6 túi
Tham gia ngày: Mar 2007
Bài gửi: 150
: |
cho em hỏi , em lưu 1 giá trị 8 bit vào eeprom con Pic 16f887 thì được , nhưng làm sao ghi 1 giá trị 10 bit hoặc lớn hơn vào eeprom vậy? ai có giải thuật giúp em với ..
__________________
_________________________________________________ Le Trung Duc Industry Research & Application Center NTT Institute of Hi_technolog ltduc@ntt.edu.vn leduc_cktd@yahoo.com.vn http://www.nttc.edu.vn CNC DIY : http://quangcaosanpham.com/shop/driverservo 0909300332 |
![]() |
![]() |
![]() |
#11 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#12 | |
Đệ tử 6 túi
Tham gia ngày: Mar 2007
Bài gửi: 150
: |
Trích:
bài toán em đang làm là : xét AD của 8 kênh dữ liệu , lưu vào eeprom . Đọc dữ liệu của 8 kênh được lưu trong eeprom , và xử lý khi có ngắt AD .. Bình thường khi ghi vào eeprom nếu giá trị lớn hơn 8bit , nó tự tách ra nhiều phần , mỗi phần là 8 bit . Nhưng khi đọc ra làm sao ta lấy dủ dữ liệu 10 để so sanh với giá trị AD 10 bit tức thời ... Em vẫn ko nghĩ ra được giải thuật, rất mong các anh giúp em... Thanks for all ..
__________________
_________________________________________________ Le Trung Duc Industry Research & Application Center NTT Institute of Hi_technolog ltduc@ntt.edu.vn leduc_cktd@yahoo.com.vn http://www.nttc.edu.vn CNC DIY : http://quangcaosanpham.com/shop/driverservo 0909300332 |
|
![]() |
![]() |
![]() |
#13 | |
Đệ tử 2 túi
Tham gia ngày: Aug 2005
Bài gửi: 30
: |
Trích:
unsigned int temp; temp = (ADRESH << 8) | ADRESL; vậy là được mà. Nếu bạn ghi 1 số kiểu integer (2 byte) vào địa chỉ 10H chẳng hạn thì đọc nó ra byte 10H và 11H, phần cao và phần thấp đó, xong làm như phép trên là được. Bạn bảo trình biên dịch nó tự tách ra thì phải lưu theo thứ tự đó, byte đầu là phần cao, byte sau là phần thấp. |
|
![]() |
![]() |
![]() |
#14 |
Nhập môn đệ tử
Tham gia ngày: Oct 2007
Bài gửi: 3
: |
tui đang tìm hiểu về ghép nối pic6f877a với rom ngoài.
bạn nào có tài liệu gì về vấn đề này không pót lên cho tui tham khảo với. nếu có sơ đồ ghép nối và code thì tốt quá.tôi định làm với con rom 256k vẫn chưa biết làm thế nào cả |
![]() |
![]() |
![]() |
|
|