![]() |
|
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ử 1 túi
Tham gia ngày: Feb 2009
Bài gửi: 12
: |
I/O Ports
Các bác cho em hỏi:em dùng dsPic30f6010a, port C và Port E em có thể đọc vào từng bít được mà sao em không thể đọc được bất cứ bít nào của Port B vậy?em đã khai báo hướng của cổng rất chính xác rồi.Các bít vào em đều treo lên Vcc qua trở 4,7k rồi.Riêng Port B em đặt các bít đều là hướng vào hết.Nhưng nếu e đặt 1 bít của Port B là hướng ra thì em có thể đặt nó bằng 0 hoặc bằng 1 bình thường. Các bác giải thích cho em với ạ.em mới làm việc với dspic nên còn nhiều điều bỡ ngỡ quá.
|
![]() |
![]() |
![]() |
#2 | |
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 |
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 1 túi
Tham gia ngày: Feb 2009
Bài gửi: 12
: |
code của em đây:
Code:
int main(void) { //TRISA=0xFFFF; TRISB=0xFFFC; TRISC=0x800A; TRISD=0x00; TRISE=0x03E0; TRISF=0; TRISG=0x03C0; _RD6=1; //_RD14=1; //UART_init(); Timer1_init(); //_RD14=_RE5; delay(); _LATD2=_RG6; if(_RB7==1) _LATD10=1;if(_RB7==0) _LATD10=0; //_LATB9=0; _LATD14=_RE5; _LATD15=_RE6; _LATC14=0; _LATF4=_RC3; _LATF5=_RC1; while(1) { for(j=1;j<55;j++) { if(i==50) _LATD6=1; if(i==180) _LATD6=0; } i++; __asm__ ("CLRWDT"); } } thay đổi nội dung bởi: namqn, 01-03-2009 lúc 05:50 PM. |
![]() |
![]() |
![]() |
#4 |
Đệ tử 1 túi
Tham gia ngày: Feb 2009
Bài gửi: 12
: |
nếu em gán _LATD10=_RE5 hoặc _RC1 hay bất cứ chân vào nào của Port E, C, G thì PortD10 đều lên 1, còn nếu em gán _LATD10 bằng bất cứ bít nào của Port B thì đều đo được mức 0.Trong khi em vẫn để tất cả các đầu vào này bằng 1.Bác xem hô e với ạ!
|
![]() |
![]() |
![]() |
#5 | |
Trưởng lão PIC bang
|
Trích:
Bạn có các tụ ceramic 100 nF (104) giữa các cặp chân nguồn 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 |
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 1 túi
Tham gia ngày: Feb 2009
Bài gửi: 12
: |
code đầy đủ của em đây ạ, em mới thử test các cổng I/O thôi, chưa dùng đến Timer1 cả, em không có các tụ 104 giữa các cặp chân nguồn,chỉ có 3 tụ 104 lọc nguồn đầu vào thôi:
Code:
#include <p30fxxxx.h> #include <libpic30.h> _FOSC(CSW_FSCM_OFF & XT_PLL8); _FWDT(WDT_OFF); _FBORPOR(PBOR_OFF& MCLR_EN); unsigned char pc[24]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24}; unsigned char pcin,i; unsigned int count,j,k; //void UART_init(); void Timer1_init(); void _ISR _T1Interrupt(); //void _ISR _U1RXInterrupt(); void delay(); ////////////////////////////////////////////////////////////////// int main(void) { //TRISA=0xFFFF; TRISB=0xFFFC; //TRISC=0x800A; TRISD=0x00; TRISE=0x03E0; TRISF=0; TRISG=0x03C0; //_RD6=1; //_RD14=1; //UART_init(); //Timer1_init(); //_RD14=_RE5; delay(); _LATD10=_RB6; while(1) { for(j=1;j<550;j++) { if(i==50) _LATD6=1;/ Led nhap nhay if(i==180) _LATD6=0; } i++; } } ///////////////////////////////////////////////////////////////// void delay() { for (i=0;i<250;i++) for(j=0;j<5000;j++); } thay đổi nội dung bởi: namqn, 01-03-2009 lúc 08:38 PM. |
![]() |
![]() |
![]() |
#7 | |
Trưởng lão PIC bang
|
Trích:
Bạn cần thêm các tụ decoupling 100 nF vào giữa 5 cặp chân nguồn của dsPIC. Đảm bảo tần số thạch anh nằm trong khoảng 4 - 10 MHz, và cũng chú ý mục 14 của errata sheet sau: http://ww1.microchip.com/downloads/e...Doc/80258G.pdf 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 |
|
![]() |
![]() |
![]() |
|
|