PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   dsPIC - Bộ điều khiển tín hiệu số 16-bit (http://www.picvietnam.com/forum/forumdisplay.php?f=29)
-   -   Thay đổi giá trị của biến __prog__ trong C30 (http://www.picvietnam.com/forum/showthread.php?t=8746)

pk178 11-04-2011 04:06 PM

Thay đổi giá trị của biến __prog__ trong C30
 
Chào các bác !

Em có 1 biến khai báo thế này :

char __attribute__((space(prog),aligned(2),noload)) temp[1500];

Giờ em muốn thay đổi giá trị của biến temp, vd như :

temp[1] = 1;
temp[2] = 2;
....

Khi biên dịch thì vẫn báo là thành công, nhưng không chạy được, PIC bị reset liên tục. Em sử dụng PIC24FJ256DA210, compiler C30, V3.25

Bác nào biết cách thay đổi giá trị của biến trên thì ra tay giúp em với ạ, cảm ơn các bác !

namqn 12-04-2011 11:55 AM

Biến thì phải nằm trong RAM chứ bạn, sao lại đặt nó trong flash (bộ nhớ chương trình).

Bạn chỉ cần khai báo như sau thì sẽ có thể thay đổi các biến đó thoải mái:
Code:

char temp[1500];
Thân,

pk178 12-04-2011 04:44 PM

Cám ơn anh Nam đã trả lời !

Em đang làm về hiển thị ảnh sử dụng thư viện của Microchip, nếu ảnh được giải mã trên PC rồi add file vào project thì hiển thị ok, nhưng em phải hiển thị ảnh truyền từ PC qua giao thức RS232 xuống vdk.

Phần giải mã trên PC thì ok, em đã thử copy file đã giải mã vào trong project thì ảnh hiển thị tốt !

Em đã thử dùng biến trong RAM như anh nói, nhưng không được, nó ko hiển thị, bắt buộc biến phải khai báo kiểu như trên (nghĩa là nằm trong flash) thì nó mới giải mã và hiển thị được !

Em cũng đã thử 1 số hàm buil-in có sẵn trong thư viện để thay đổi giá trị ghi trong flash nhưng không được !


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam