PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 14-01-2010, 05:22 PM   #1
Mr.Bi
Đệ tử 7 túi
 
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
:
Trích:
Nguyên văn bởi slowlove View Post
tất nhiên là ko phải mình muốn như thế....
ứng dụng nhỏ thôi nhưng mà nó cần lưu trữ data khi bị mất nguồn...nên ko thể send tới mt đc...
vậy thì phải giải quyết sao đêy??
cụ thể là u đang làm project nào ? mỗi project có 1 pp tạm chấp nhận đc để giải quyết vấn đề đó .
vd mún lưu mật mã --> có thể lưu tại 1 địa chỉ trong eeprom bao nhiu lần cũng đc , nhưng tốt nhất là nên lưu sau khi nhấn enter
vd : lưu lại giá trị các biến thì nên khai báo là kiểu unsigned char flash ,hoặc unsigned char eeprom , hoặc write_eeprom (địa chỉ , dta) . hình như ghi xóa đc 10 000 lần .
Hoặc dùng nguồn dự phòng , cái này cần thiết kế 1 mạch đo áp khi mất điện để đóng role thông nguồn ngoài .
Mr.Bi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-01-2010, 11:04 AM   #2
slowlove
Đệ tử 1 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 15
:
mình cần 1 thiết bị có thể lưu thời gian hoạt động của máy..điều hòa công nghiệp,mà cái máy này cứ bật lại tắt liên tục....nó có thể tắt bất kì lúc nào...
yêu cầu cần phải có 1 cái đồng hồ hiển thị số thời gian nó sử dụng đc từ lúc mình đặt..hc là reset...
do đó cứ khoảng 10->15 s là phải lưu giá trị thời gian 1 lần...
mình định ghi nó vào eprom của PIC nhưng sợ rằng lưu giá trị này vào 1 ô nhớ quá nhiều lần trong 1 thời gian dài thì nó sẽ bị hỏng ....hc bị sai..
mạch này hoạt động mà ko đc dùng nguồn ngoài như nguồn 5v hay 3v phụ cho RTC
mình đang rất bí mà chưa có giải pháp nào phù hợp cả...
slowlove vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-11-2011, 06:46 PM   #3
bbld
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 5
:
Chào mọi người,mọi người cho mình hỏi mình dùng lệnh write_eeprom(add,data) và read_eeprom(add) trong ccs thì lại báo lỗi là function used but not defined...read_eeprom SCR3681
mình không biết bị lỗi gì mong mọi người chỉ giúp
[CODE]void Read_e2prom(void){
fprintf(HOSTPC,">** Read eeprom program**\n\r");
A=read_eeprom(A_eeprom);//trình dịch báo lỗi hàm chưa được định nghĩa
B=read_eeprom(B_eeprom);
C=read_eeprom(C_eeprom);
D=read_eeprom(D_eeprom);
E=read_eeprom(E_eeprom);
F=read_eeprom(F_eeprom);
G=read_eeprom(G_eeprom);
H=read_eeprom(H_eeprom);
fprintf(HOSTPC,">A=%d\n\r",A); delay_ms(10);
fprintf(HOSTPC,">B=%d\n\r",B); delay_ms(10);
fprintf(HOSTPC,">C=%d\n\r",C); delay_ms(10);
fprintf(HOSTPC,">D=%d\n\r",D); delay_ms(10);
fprintf(HOSTPC,">E=%d\n\r",E); delay_ms(10);
fprintf(HOSTPC,">F=%d\n\r",F); delay_ms(10);
fprintf(HOSTPC,">G=%d\n\r",G); delay_ms(10);
fprintf(HOSTPC,">H=%d\n\r",H); delay_ms(10);
}
[CODE]
Cám ơn mọi người
bbld vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-11-2011, 05:16 PM   #4
romantics892005
Nhập môn đệ tử
 
Tham gia ngày: Jan 2011
Bài gửi: 10
:
Nếu dữ liệu là kiểu float thì sao các bác nhỉ ? có cách nào nhanh hơn là chuyển 32bit thành 4 lần 8bit rồi gửi từng cái không nhỉ ? em thấy cái này chỉ cho gửi dữ liệu 8bit mà em đang cần lưu kiểu float , em dùng ccs và pic877a. thanks ^^
romantics892005 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-12-2011, 04:55 PM   #5
lenphat123
Nhập môn đệ tử
 
Tham gia ngày: Nov 2011
Bài gửi: 8
:
co ban nao biet cach ghi doc prom roi xuat ra cong com giao tiep voi may tinh k chi mh voi
thay mh yeu cau sau khi nhan nut doc eeprom thi truyen ve may tinh va dung chuong trinh vb6 de tong hop xem co ban=o nhieu y kien chon nut do,AI GIUP MH VOI HUHUHUHU
lenphat123 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-12-2011, 12:43 PM   #6
dongpeco80
Nhập môn đệ tử
 
Tham gia ngày: Dec 2011
Bài gửi: 2
:
có ai biết địa chỉ mua eprom 27c512 moi mà rẻ tại hà nội chủ rùm em với. cám ơn trước nhe.

thay đổi nội dung bởi: dongpeco80, 22-12-2011 lúc 01:45 PM. Lý do: thêm
dongpeco80 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-06-2013, 12:32 PM   #7
thuong_123
Nhập môn đệ tử
 
Tham gia ngày: Apr 2012
Bài gửi: 5
:
#include <16f877a.h>
#FUSES HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
//#use i2c(Master,slow,sda=PIN_C4,scl=PIN_C3)//toc do 100kb slow
#use Delay(clock=20000000)
//#include "lcd 8bit.h"


//#define Mode PIN_A3
//#define Up PIN_A2
//#define Down PIN_A1
//#define Setup PIN_A0


/*
int8 value=0,value_display=1,value_VC_front=7,value_VC_ rear=7,
value_Tr=5,value_Md=3,value_Bas=1,
value_Ce=7,value_Sub=8,

value_Mt,value_1db,value_10db,
value_B=158,value_M=172,value_T=186,
value_FL=24,value_FR=40,value_RR=88,value_RL=72,
value_C=56,value_SW=104;//
*/
int8 value, value_display, value_VC_front, value_VC_rear,
value_Tr,value_Md,value_Bas,
value_Ce,value_Sub,
value_Mt,value_1db,value_10db,
value_B,value_M,value_T,
value_FL,value_FR,value_RR,value_RL,
value_C,value_SW;//


void Write_EE()
{
Write_EEPROM(0x00,40); //value_Mt=40
Write_EEPROM(0x01,217); //value_1db=217
Write_EEPROM(0x02,227); //value_10db=227

Write_EEPROM(0x03,158); //value_B=158
Write_EEPROM(0x04,1); //value_Bas=1,
Write_EEPROM(0x05,172); //value_M=172
Write_EEPROM(0x06,3); //value_Md=3
Write_EEPROM(0x07,186); //value_T=186
Write_EEPROM(0x08,5); //value_Tr=5

Write_EEPROM(0x09,7); //value_VC_front=7
Write_EEPROM(0x10,24); //value_FL=24
Write_EEPROM(0x11,40); //value_FR=40

Write_EEPROM(0x12,7); //value_VC_rear=7
Write_EEPROM(0x13,72); //value_RL=72
Write_EEPROM(0x14,88); //value_RR=88

Write_EEPROM(0x15,7); //value_Ce=7
Write_EEPROM(0x16,56); //value_C=56
Write_EEPROM(0x17,104); //value_SW=104
Write_EEPROM(0x18,8); //value_Sub=8

}


void Read_EE()
{
value_Mt= Read_EEPROM(0x00);
value_1db= Read_EEPROM(0x01);
value_10db= Read_EEPROM(0x02);

value_B= Read_EEPROM(0x03);
value_Bas= Read_EEPROM(0x04);
value_M= Read_EEPROM(0x05);
value_Md= Read_EEPROM(0x06);
value_T= Read_EEPROM(0x07);
value_Tr= Read_EEPROM(0x08);

value_VC_front= Read_EEPROM(0x09);
value_FL= Read_EEPROM(0x10);
value_FR= Read_EEPROM(0x11);

value_VC_rear= Read_EEPROM(0x12);
value_RL= Read_EEPROM(0x13);
value_RR= Read_EEPROM(0x14);

value_Ce= Read_EEPROM(0x15);
value_C= Read_EEPROM(0x16);
value_SW= Read_EEPROM(0x17);
value_sub= Read_EEPROM(0x18);
}
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
void main()
{

Write_EE();
//Read_EE();


while(1)
{/*
if(!input(Mode))
{while(!input(Mode));
value_Mt= Read_EEPROM(0x00);
Lcd_gotoxy(0x80);
printf(lcd_putchar,"%u",value_Mt);
}

if(!input(Up))
{while(!input(Up));
value_VC_front= Read_EEPROM(0x02);
Lcd_gotoxy(0x40);
printf(lcd_putchar,"%u",value_10db);
}
*/
}
}

Chào các bạn. Mình có đoạn code ghi các giá trị vào eeprom. Sau khi nạp xong mình đọc lại bằng pickit2 thì tại địa chỉ 0x00 nó không ghi đúng giá trị mình đặt, mình có thử ghi lại tại địa chỉ khác cũng không được. Mong các bạn giúp đỡ. Thanks.
thuong_123 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 09:07 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam