View Full Version : Cho em hỏi về dspic30
qwqwq
20-09-2010, 11:30 PM
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
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
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
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ì.
Ô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
Ô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
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
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
#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
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
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.