PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 05-01-2008, 01:10 PM   #1
ayuh
Đệ tử 1 túi
 
ayuh's Avatar
 
Tham gia ngày: Apr 2007
Bài gửi: 13
:
Send a message via Yahoo to ayuh
Pic 18f452 Project error

Trong quá trình compiler project mình gặp phải những lỗi mà không biết khắc phục như thế nào.

Các bạn thử down project về compiler thử.ai biết lỗi thì sửa dùm mình nhé!

Sau đây mình xin post project đính kèm.

File project trong thu muc ...\huy\Demo\PIC

Cám ơn rất nhiều!
File Kèm Theo
File Type: rar huy.rar (343.3 KB, 164 lần tải)
__________________
học thầy không tày học bạn
ayuh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2008, 03:43 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi ayuh View Post
Trong quá trình compiler project mình gặp phải những lỗi mà không biết khắc phục như thế nào.

Các bạn thử down project về compiler thử.ai biết lỗi thì sửa dùm mình nhé!

Sau đây mình xin post project đính kèm.

File project trong thu muc ...\huy\Demo\PIC

Cám ơn rất nhiều!
Bạn chỉ cần copy các thông báo lỗi và post lên diễn đàn, cùng với mã nguồn. Người khác download project của bạn về có khả năng không biên dịch được, vì tổ chức thư mục của máy khác nhau, và có khả năng thư mục cài đặt các tool MPLAB cũng khác nhau.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-01-2008, 01:17 PM   #3
ayuh
Đệ tử 1 túi
 
ayuh's Avatar
 
Tham gia ngày: Apr 2007
Bài gửi: 13
:
Send a message via Yahoo to ayuh
Đây là thông báo của MPLAB

MPLINK 4.03, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section '.udata_portheap.o' can not fit the section. Section '.udata_portheap.o' length=0x00000476
Errors : 1

Còn đây là mã dòg lệnh bị lỗi

typedef struct
{
unsigned portCHAR ucFull;
unsigned portCHAR ucBlock[ heapSMALL_BLOCK_SIZE ];
} xSmallBlock;

typedef struct
{
unsigned portCHAR ucFull;
unsigned portCHAR ucBlock[ heapLARGE_BLOCK_SIZE ];

} xLargeBlock;
__________________
học thầy không tày học bạn
ayuh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-01-2008, 01:21 PM   #4
ayuh
Đệ tử 1 túi
 
ayuh's Avatar
 
Tham gia ngày: Apr 2007
Bài gửi: 13
:
Send a message via Yahoo to ayuh
Trích:
Nguyên văn bởi ayuh View Post
Đây là thông báo của MPLAB

MPLINK 4.03, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section '.udata_portheap.o' can not fit the section. Section '.udata_portheap.o' length=0x00000476
Errors : 1

Còn đây là mã dòg lệnh bị lỗi

typedef struct
{
unsigned portCHAR ucFull;
unsigned portCHAR ucBlock[ heapSMALL_BLOCK_SIZE ];
} xSmallBlock;

typedef struct
{
unsigned portCHAR ucFull;
unsigned portCHAR ucBlock[ heapLARGE_BLOCK_SIZE ];

} xLargeBlock;
Mà không hiểu tại sao mạch nạp của em lại không thể nạp cho con PIC18f452 này?
mạch của em là GTP_USB
__________________
học thầy không tày học bạn
ayuh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-01-2008, 11:31 PM   #5
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Các hằng số heapSMALL_BLOCK_SIZE và heapLARGE_BLOCK_SIZE được khai báo ra sao? Tôi có đề nghị bạn post cả mã nguồn nữa, chỉ có thông báo lỗi không thì đa số chúng tôi sẽ thành thầy bói mù xem voi.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-01-2008, 09:43 PM   #6
ayuh
Đệ tử 1 túi
 
ayuh's Avatar
 
Tham gia ngày: Apr 2007
Bài gửi: 13
:
Send a message via Yahoo to ayuh
Trích:
Nguyên văn bởi ayuh View Post
#define heapSMALL_BLOCK_SIZE ( 45 )
#define heapLARGE_BLOCK_SIZE portMINIMAL_STACK_SIZE

/* These are the number of blocks required by the demo applications. */
#define heapNUM_SMALL_BLOCKS ( 11 )
#define heapNUM_LARGE_BLOCKS ( 6 )
Cho em hỏi cách config con 18f452 dùng thạch anh 8MHz được không ah?
em viết chương trình cho pic 18f452 mà không nạp được!
__________________
học thầy không tày học bạn
ayuh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-01-2008, 12:11 AM   #7
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Tôi đã xem qua tập tin .rar mà bạn đã gửi lên ở post #1, và thấy rằng bạn đang định dùng FreeRTOS. Đề nghị bạn đọc kỹ những hướng dẫn của FreeRTOS và lọc ra những thư mục không cần thiết trước khi post câu hỏi (tập tin mà bạn đã post lên chứa nhiều thư mục dành cho các target chip khác, không hề liên quan đến PIC).

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-01-2008, 09:57 PM   #8
ayuh
Đệ tử 1 túi
 
ayuh's Avatar
 
Tham gia ngày: Apr 2007
Bài gửi: 13
:
Send a message via Yahoo to ayuh
Cho em hỏi về cổng 18f452.
Nếu muốn cấu hình cổng của pic là cổng I/0(cổng vừa đọc vừa ghi)thì làm thế nào?
Theo em biết thì chỉ có cổng D trong pic này mới có chức năg này phải không a!
cho em hỏi thêm về cách phân biệt giũa thanh ghi LAT và PORT.
Vì em thấy trong pic này thì hầu như đọc và ghi đều sử dụng PORT
__________________
học thầy không tày học bạn
ayuh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-01-2008, 11:02 PM   #9
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi ayuh View Post
Cho em hỏi về cổng 18f452.
Nếu muốn cấu hình cổng của pic là cổng I/0(cổng vừa đọc vừa ghi)thì làm thế nào?
Theo em biết thì chỉ có cổng D trong pic này mới có chức năg này phải không a!
cho em hỏi thêm về cách phân biệt giũa thanh ghi LAT và PORT.
Vì em thấy trong pic này thì hầu như đọc và ghi đều sử dụng PORT
Tất cả các port của PIC18F452 đều có thể dùng làm I/O. Việc một chân nào đó của một port là ngõ vào hay ngõ ra tùy thuộc vào bit tương ứng của thanh ghi điều khiển tri-state của nó (các thanh ghi TRISx, x = A, B, ..., E), và người lập trình sẽ thiết lập giá trị của các bit trong các thanh ghi tri-state này theo yêu cầu của họ. Bit tri-state được bật lên '1' có nghĩa là chân tương ứng là ngõ vào (input), bit tri-state được xóa về '0' có nghĩa là chân tương ứng là ngõ ra (output). Để dễ nhớ thì có thể hình dung 1 = I(nput), 0 = O(utput).

Thanh ghi LAT dùng để xuất dữ liệu ra port, còn thanh ghi PORT dùng để đọc dữ liệu từ port. Thanh ghi LAT xuất hiện trong PIC18 để giải quyết vấn đề hiệu ứng read-modify-write xuất hiện trong các dòng PIC base-line và mid-range (PIC12, PIC16).

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

thay đổi nội dung bởi: namqn, 15-03-2008 lúc 08:48 AM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-03-2008, 08:25 AM   #10
wantanamo69
Nhập môn đệ tử
 
Tham gia ngày: Feb 2008
Bài gửi: 5
:
Trích:
Nguyên văn bởi namqn View Post
Tất cả các port của PIC18F452 đều có thể dùng làm I/O. Việc một chân nào đó của một port là ngõ vào hay ngõ ra tùy thuộc vào bit tương ứng của thanh ghi điều khiển tri-state của nó (các thanh ghi TRISx, x = A, B, ..., E), và người lập trình sẽ thiết lập giá trị của các bit trong các thanh ghi tri-state này theo yêu cầu của họ. Bit tri-state được bật lên '1' có nghĩa là chân tương ứng là ngõ vào (input), bit tri-state được xóa về '0' có nghĩa là chân tương ứng là ngõ ra (output). Để dễ nhớ thì có thể hình dung 1 = I(nput), 0 = O(utput).

Thanh ghi LAT dùng để xuất dữ liệu ra port, còn thanh ghi PORT dùng để đọc dữ liệu từ port. Thanh ghi LAT xuất hiện trong PIC18 để giải quyết vấn đề hiệu ứng read-modify-write xuất hiện trong các dòng PIC base-line và mid-rang (PIC12, PIC16).

Thân,
;//////////////////////////////////////////////

Nhu ban namqn da noi tren thi that dung, toi bo xung them:

Ban co the sai cac port.PIN thanh Input hay Output tuy-y (fai chieu theo data sheet). Vi du ban dang sai RA.1 thanh Input ma ban muon doi no thanh output thi cu viec set cai TRISA.1 thanh LOW (tuc la = 0 cho out put). Doi khi ban muon sai nhu vay neu ban viet I2C software; ban doi DATA pin thanh IN de doc va thanh OUT de viet vao I2C. Nhung neu ban da gan pin nao do vao LED vi-du, thi READ cung khong co ich gi.

Hy-vong that help,

LB

;/////////////////// --- THI DU ---///////////////////// --- in MCC18 ---

/--------------------------------------------
I2CBITOUT routine viet mot byte sang I2C
//-------------------------------------------

void I2CBITOUT(byte n) {

I2CDataTris=0; // CHU-Y: cho pin nay thanh OUTPUT
if(n) //
m_I2CDataBit=1; // doi logic
else
m_I2CDataBit=0;
Nop();
Nop();
m_I2CClkBit=1; // set clock line high
I2CDelay();
m_I2CClkBit=0; // return clock line low
I2CDelay();

}

//------------------------------------------
I2CBITIN routine doc mot byte tu I2C
//------------------------------------------

byte I2CBITIN(void) {
byte i;

I2CDataTris=1; // bien data line thanh INPUT de doc byte
I2CDelay();
m_I2CClkBit=1; // set clock line high
I2CDelay(); // cho chut siu
i = m_I2CDataBit ? 1 : 0; // read the data bit
m_I2CClkBit=0; // set clock line low
return i;
}

;////////////////////// --- thi du in ASM --- //////////////////////

;
;-------------------------------
;///////////////////////////////

; BITOUT sub for ext EEprom
;--------
;
BITOUT

bcf LATA,0 ; -- doi lai 06/25/05 --
bcf TRISA,0 ; cho Sdata Output

btfss Temp4,do ; bitFLAG,do ; check for state of data
goto bitlow ; if low then
bsf Sdata ; output a ---- HI BIT ----
goto clkout ; go toggle the clock
bitlow
bcf Sdata ; else output a ---- LOW BIT ----
clkout
bsf Sclk ; set clk line HI
call delayEE0 ; ___/"""""\___
bcf Sclk ; set clk line low
bcf Sdata ; 04/20/20 da chay tot
nop

retlw 0
;
;-------------------------------
;///////////////////////////////

; BITIN sub: Read one bit of data from ee and store it in di
;-------- for ext EEprom ------
;
BITIN
bcf Sdata ; ok
nop ; ok
nop ; ok

bsf LATA,0 ; DOI LATA TO B HAY C TUY THEO port --
bsf TRISA,0 ; cho Sdata INPUT

bsf Sclk ; set clock line HI __/""
;--
call delayEE001 ; OK
btfsc Sdata ; jb Sdata,btin1
goto btin1
bcf Temp4,di ; bitFlag,di ; input bit was LOW
goto btin2
btin1
bsf Temp4,di ; bitFlag,di
btin2
bcf Sclk ; set clock line LOW too ""\__
nop ; ok

retlw 0 ; -- khi ve thi di da co mot byte cua data --

;-------------------------------
;

Hy vong cai nay giup,

LB
wantanamo69 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-03-2008, 04:33 PM   #11
ayuh
Đệ tử 1 túi
 
ayuh's Avatar
 
Tham gia ngày: Apr 2007
Bài gửi: 13
:
Send a message via Yahoo to ayuh
Cho em hỏi về chân PWM trong 18f452.
như ở dspic thì có các chân cụ thể để fuc vụ modul
PWM.Còn trong 18f thì sao không thấy nhỉ?
__________________
học thầy không tày học bạn
ayuh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-03-2008, 06:42 PM   #12
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi ayuh View Post
Cho em hỏi về chân PWM trong 18f452.
như ở dspic thì có các chân cụ thể để fuc vụ modul
PWM.Còn trong 18f thì sao không thấy nhỉ?
PIC18F452 có các chân CCP1 và CCP2 là ngõ ra của các bộ CCP làm việc ở chế độ PWM, tương tự như trong các PIC16 có bộ CCP.

Nếu dùng để điều khiển động cơ và cần nhiều ngõ ra PWM, bạn nên dùng họ PIC18xx31.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 02:39 PM.


Đượ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