![]() |
|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Thầy Nam cho em hỏi : em muốn giao tiêp PC vơi dsPIC30f2010 , bằng cách dùng PC gửi kí tự xuống dsPIC sau đó dsPIC hiện thị những kí tự vừ nhận lên màn hình LCD và gửi lại cho PC , project em làm là dựa trên code của thầy (cả TUTO LCD và UART), nhưng không hiểu sao nó không chạy, nếu không có hiện thị lên LCD thì chạy bình thường(em dùng hyper terminal) . Module LCD của em nó cũng chạy rồi . Nhưng cứ "nối" 2 module này lại là không chạy !
Em cảm ơn Thầy ! Trân trọng ! thay đổi nội dung bởi: conglong, 15-03-2009 lúc 10:04 AM. |
![]() |
![]() |
![]() |
#2 |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Thầy Nam cho em hỏi câu nữa liên quan tới C30 là: giả sử em đã có 2 project LCD và UART , mà trong project UART em muốn hiện thị LCD , vậy em có thể dung thêm lệnh preprocessor ở đầu project UART là
"#include LCD.c" Để lấy hàm hiện thị "LCD_puttring()" trong LCD. c được không thầy , Em cảm ơn ! Trân trọng !. |
![]() |
![]() |
![]() |
#3 | |
Trưởng lão PIC bang
|
Trích:
Nếu bạn dùng "#include LCD.c" thì trình biên dịch chỉ đơn giản bê nguyên nội dung của "LCD.c" đặt vào tập tin mã nguồn hiện tại của bạn thôi. Tôi không cho đây là cách làm hay. Không rõ bạn có được học về lập trình C trong chương trình đại học hay không? 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: Jan 2008
Bài gửi: 68
: |
Trích:
tạo một tập tin header nữa (ex: UartHeader.h), trong tập tin này có #Include LCD.c; Và trong file mã nguồn (UART.c) em dung lệnh #include UartHeader.h ??? Em mới học VB còn C thì em đang học thầy ạ, nên có nhiều câu hỏi hơi "NGỖ" mong thầy thông cảm. Em cảm ơn! Trân trọng !. |
|
![]() |
![]() |
![]() |
#5 | |
Trưởng lão PIC bang
|
Trích:
Nếu bạn đang học C, bạn có thể đem những vấn đề này ra hỏi thầy dạy của bạn. Nếu bạn vẫn không nắm được vấn đề, đề nghị bạn tìm đọc một tài liệu hướng dẫn lập trình căn bản cho C. Vì đây là diễn đàn về PIC/dsPIC, tôi chỉ hướng dẫn những vấn đề liên quan đến PIC/dsPIC (trong tầm hiểu biết của tôi), và tôi không có ý định hướng dẫn sử dụng các ngôn ngữ lập trình cấp cao. 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 | |
Trưởng lão PIC bang
|
Trích:
Tốc độ gửi dữ liệu của bạn ra sao? Mỗi giây một giá trị từ PC hay thế nào? Hàm lcd_putstr() của bạn nhận đối số là một chuỗi ký tự, nhưng bạn lại gọi hàm với đối số là temp (có kiểu unsigned short). Lần trước tôi đã hướng dẫn bạn dùng hàm sprintf() để chuyển giá trị số thành một chuỗi ký tự trước khi xuất ra LCD rồi mà. 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 |
|
![]() |
![]() |
![]() |
#7 | |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Trích:
char temp[1]; mà nó vẫn không chạy ; Không chạy ở đây là : Hyper terminal không detect được tốc độ truyền và định dạng truyền, em truyền 1 kí tự từ bàn phím , sau 2s hoặc lâu hơn em nhấn bàn phím 1 lần mà không thấy kết quả. em cảm ơn thấy ! Trân trọng !. |
|
![]() |
![]() |
![]() |
#8 | |
Trưởng lão PIC bang
|
Trích:
Nếu bạn định nghĩa biến temp như trên thì temp tương thích với hàm lcd_putstr(), nhưng khi bạn dùng lệnh gán giá trị của U1RXREG vào temp thì kết quả sẽ khác với sự mong đợi của bạn (vì temp sẽ giống như một con trỏ, và giá trị của nó sẽ bị thay đổi, chứ không phải là nội dung của ô nhớ mà nó trỏ tới sẽ bị thay đổi). 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 |
|
![]() |
![]() |
![]() |
#9 | |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Trích:
void Init_UART1_Module(void) Thầy lại config thanh ghi U1MODE là U1MODE = 0x8000; Em nghĩ phải là U1MODE = 0x8400; chứ thầy? Em cảm ơn! Trân trọng!. |
|
![]() |
![]() |
![]() |
#10 |
Đệ tử 4 túi
Tham gia ngày: Jan 2008
Bài gửi: 68
: |
Trong TUTO về I2C (vidu4.3) thầy có dùng các lệnh sau em không hiểu lắm: (chố em không hiểu em có comment ở ngay sau lệnh) mong thầy nói rõ cho em với :
Wait_I2C(); //trong hàm này thầy dùng cờ ngắt là _MI2CIF vậy sao thầy //không set bit enable _MI2CIE trong hàm void Init_PORTS(void)? Send_I2C(0xD0);//tại sao đây là dịa chỉ của ds1307 số khác được khôngthầy ? Send_I2C(0x67); // trước khi ghi vào REG 02 của RTM thì phải gửi điạ //chỉ chứ (giống như các lệnh thao tác //trên //REG01?? con số hex 67 có nghĩa gì ?) Send_I2C(0x01); //Xuat số con số 01 nầy là chỉ Thứ 2 của tuần phài //không ? Send_I2C(0x25); //Xuat noi dung cua thanh ghi 0x04 (dem ngay) Send_I2C(0x08); //Xuat noi dung cua thanh ghi 0x05 (dem thang) // hai số hex 25 và 08 có nghĩa gì? em cảm ơn ! Trân trọng !. |
![]() |
![]() |
![]() |
#11 | |
Trưởng lão PIC bang
|
Trích:
Địa chỉ 0xD0 của DS1307 là do nhà sản xuất vi mạch DS1307 quy định, nếu không dùng đúng giá trị này thì DS1307 sẽ không đáp ứng với các yêu cầu đã được gửi ra bus I2C. Những vấn đề liên quan đến các câu hỏi còn lại của bạn đều được mô tả trong datasheet của DS1307, đề nghị bạn đọc nó. Những thông tin điều khiển gửi đến một vi mạch ngoài PIC cần tuân thủ những yêu cầu đã đề ra trong datasheet của vi mạ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 | |
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 |
|
![]() |
![]() |
![]() |
Tags |
dspic30f i2c, dspic30f uart, i2c, rtc |
Ðiều Chỉnh | |
Xếp Bài | |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
dsPIC Tutorial 3-Đọc ngõ vào và giao tiếp LCD | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 92 | 19-02-2017 11:15 PM |
dsPIC Tutorial 2-Các kỹ thuật cơ bản | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 33 | 17-10-2013 11:09 PM |
dsPIC Tutorial 5-Module ADC và MCPWM | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 83 | 12-09-2013 10:33 PM |
dsPIC Tutorial 1-Tạo và biên dịch một project (ASM30) | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 16 | 22-08-2012 12:35 AM |
Alternate UART pin??? | alexjp | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 1 | 02-05-2006 06:26 PM |