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)
-   -   Cho em hỏi về dspic30 (http://www.picvietnam.com/forum/showthread.php?t=7030)

qwqwq 20-09-2010 11:30 PM

Cho em hỏi về dspic30
 
Khi dùng C30 em thấy muốn thay đổi một chân của cổng D chẳng hạn thì em phải tác động vào cả cổng D.
Ví dụ : TRISD = 0xFFFE; // Cho chân D0 làm chân ra
PORTD=0xFFFF; // Cho chân D0 lên mức 1
PORTD=0xFFFE; // Cho chân D0 lên mức 0
Vậy có cách nào chỉ tác động vào 1 chân(một bit) không. Em thử viết RD0=0. Nhưng bị báo nỗi.error: 'RD0' undeclared (first use in this function)

lecanhhuy 20-09-2010 11:54 PM

Trích:

Nguyên văn bởi qwqwq (Post 38770)
Khi dùng C30 em thấy muốn thay đổi một chân của cổng D chẳng hạn thì em phải tác động vào cả cổng D.
Ví dụ : TRISD = 0xFFFE; // Cho chân D0 làm chân ra
PORTD=0xFFFF; // Cho chân D0 lên mức 1
PORTD=0xFFFE; // Cho chân D0 lên mức 0
Vậy có cách nào chỉ tác động vào 1 chân(một bit) không. Em thử viết RD0=0. Nhưng bị báo nỗi.error: 'RD0' undeclared (first use in this function)

_LATD0 = 1;
or
_LATD0 = 0;

qwqwq 21-09-2010 02:25 PM

Cho em hỏi nếu e muốn đảo bít tất cả một cổng thì phải làm thế nào.Em thử VD với cổng D.
LATD=0;
LATD=!LATD;
nhưng không được. trừ khi phải tác động từng bit _LATD0=_LATD0;_LATD1=_LATD1;

lecanhhuy 21-09-2010 04:33 PM

Trích:

Nguyên văn bởi qwqwq (Post 38800)
Cho em hỏi nếu e muốn đảo bít tất cả một cổng thì phải làm thế nào.Em thử VD với cổng D.
LATD=0;
LATD=!LATD;
nhưng không được. trừ khi phải tác động từng bit _LATD0=_LATD0;_LATD1=_LATD1;

LATD ^=0xffff;

qwqwq 22-09-2010 01:26 AM

Các anh chỉ cho em biết chức năng của hai thanh nghi IFS0 và IEC0 với(chức năng của từng bit trong thanh ghi).Datasheet nó nói nhưng em không hiểu rõ lám.

tungnh 23-09-2010 02:02 AM

Trích:

Nguyên văn bởi qwqwq (Post 38813)
Các anh chỉ cho em biết chức năng của hai thanh nghi IFS0 và IEC0 với(chức năng của từng bit trong thanh ghi).Datasheet nó nói nhưng em không hiểu rõ lám.

2 thanh ghi đó thông thường chứa các bit liên quan đến ngắt, dùng module nào khi cần sử dụng ngắt thì xem trong thanh ghi đó có chứa bit cần dùng hay không? ví dụ khởi động timer1 thì xem bit T1IE chứa ở thanh nghi nào, mà thông thường cũng chẳng quan tâm đến thanh ghi đó lắm vì trong file header (pic30fxxxx.h) nó đinh nghĩa các bit đó rồi ví dụ muốn cho phép ngắt timer1 thì chỉ cần khai báo _T1IE = 1;chẳng cần quan tâm bit T1IE nó nằm ở thanh ghi nào.

qwqwq 29-09-2010 10:35 AM

Ở đầu mỗi chương trình đều có các dòng:(dành cho dspic30f4011)
_FOSC(CSW_FSCM_OFF & FRC_PLL4);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_EN & PWMxL_ACT_HI & PWMxH_ACT_HI);
_FGS(CODE_PROT_OFF)
Cho em hỏi CSW,FSCM,FRC...có ý nghĩa gì.

ak47 29-09-2010 03:28 PM

DsPic
 
Ông này không đọc sách đi rồi hỏi! Từ đầu tới giờ toàn hỏi cái....! Đọc sách tuy mất thời gian nhưng mà nhớ lâu mà! Ai mà trả lời mãi những cái đó được.Lên trang chủ của Microchip down chọn bộ "dsPIC30F Family Reference Manual" bao gồm 26 section về mà luyện.Sau đó hãy hỏi.
Cái ô hỏi nằm trong section Ossilator đó!

chestnut 29-09-2010 07:54 PM

Trích:

Nguyên văn bởi ak47 (Post 38978)
Ông này không đọc sách đi rồi hỏi! Từ đầu tới giờ toàn hỏi cái....! Đọc sách tuy mất thời gian nhưng mà nhớ lâu mà! Ai mà trả lời mãi những cái đó được.Lên trang chủ của Microchip down chọn bộ "dsPIC30F Family Reference Manual" bao gồm 26 section về mà luyện.Sau đó hãy hỏi.
Cái ô hỏi nằm trong section Ossilator đó!

Tại vì có người trả lời nên bạn ấy cứ muốn hỏi vậy mà, hỏi nhanh hơn :))

vanmanh1988 30-09-2010 11:42 PM

không tra lời cho những ai không tự tìm hiểu trước rồi mới hỏi người khác.bạn nghĩ ai cũng rảnh như bạn hả

trinhdieuhvktqs 08-10-2010 12:46 PM

hoi ve dspic30f
 
2 Attachment(s)
mọi người ơi..giúp mình với.
mình muốn viết một chương trình hiển thị lên lcd sử dụng dspic30f..và mình có 1 công tác xung..mình muốn sau khi ấn công tác xung đó thì lcd sẽ hiển thị len 1.. còn nếu không ấn thì lcd sẽ hiển thị 0...mình đã viết code dựa theo code quét bàn phím của anh Nam nhưng mà vẫn chưa dc.khi nạp code và chạy mạch thì mình chỉ thấy lcd hiển thị lên kí tự gì ấy và ấn công tác xung thì chẳng thấy có phản ứng gì cả..mình có đưa code và sơ đồ mạch lên..các bạn kiểm tra thử và chỉnh sửa giúp mình nhé...
cảm ơn các bạn rát nhiều

tahi 12-10-2010 05:08 PM

thêm con tụ, mắc song song với phím bấm để chống nẩy phím nhé,
thêm con trở khoảng 10k nối vào nguồn, chỗ phím bấm nhé, ko khi ấn nút 1 phát thì, keke

code thế này ko ổn 1 téo nào, code bàn phím trên mạng có nhiều, nhưng toàn cho bàn phím 4*4, còn 1 phím thế này, đâm ra khó nghĩ...:D
thử viết đơn giản thế này xem
Code:

#define SW _RE4  //là thanh PORT chứ không phải LAT
while(1)
{
    LCD_dat4 ('0');
    while(!SW)
    {
          while(SW); //chống rung
          LCD_dat4 ('1');
        delay_ms(1000); //nhìn cho rõ, ko là nó chuyển sang số 0 mất
    }
}

Nếu nhiều phím, có thể khai báo phím thành struct, gồm các thông số như trạng thái phím, thời gian giữ phím, rồi đặt vào timer khoảng 10ms là ok

trinhdieuhvktqs 15-10-2010 04:07 PM

phim an
 
3 Attachment(s)
ban Tahi oi
minh cung da sua code nhu ban roi nhung chuong trinh van k bien dich duoc.tuy khong bao loi nhhung lai canh bao

ban co gang xem qua cai code minh da sua giup minh voi nhe


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

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