Ðăng Nhập

View Full Version : Tìm giúp lỗi sai


tonghua19
03-07-2009, 07:11 PM
Chào các anh
Các anh có thể tìm giúp em lỗi của chương trình sau không:
Chuơng trình này em cũng chỉ chép từ một phần trong chuơng trình của một ai đó. Nhưng nó không chạy.
Các anh cho em hỏi thêm là tại sao trong Mplab không có lựa chọn loại chip, nguồn xung FRC, XT, giá trị thạch anh,... vậy. Có phải chỉ cần cái marco khai báo đầu chuơng trình là đủ hay không. Các đoạn chuơng trinh interrupt bắt đầu như thế nào vậy. Ví du trong bài này của em là void _ISR_PSV_T1Interrupt(); ngoài cách viết interrupt này còn nhiều cách viết khác nữa, chúng khác nhau cái gi vậy

#include <p30f4011.h>

_FOSC(CSW_FSCM_OFF & FRC_PLL4);
_FWDT(WDT_OFF);
_FBORPOR(MCLR_EN & PBOR_OFF & PWMxL_ACT_HI & PWMxH_ACT_HI);
_FGS(CODE_PROT_OFF);

int i,j;

void int_timer1()
{
TMR1 = 0;
PR1 = 0x0A12;
_T1IF = 0;
T1CON = 0x8030;
_T1IE = 1;
}

void _ISR_PSV_T1Interrupt()
{
_T1IF = 0;
LATB = 0;
}

int main()
{
ADPCFG=0xffff;
TRISB = 0;
LATB = 0xFFFF;
/* while(1)
{
for(i=0; i<5000; i++)
for(j=0; j<1474; j++);
LATB =~ LATB;
}*/
int_timer1();
while(1)
{
}
return 0;
}

mtuankct
21-07-2009, 09:04 AM
Muốn chọn lại chíp bạn phải tạo project thì mới chọn được. Trong MPLAB không có chức năng chọn tốc độ thạch ânh. Tốc độ thành anh được cầu hình thông qua PLL và thạch anh ngoài hoặc sử dụng thạch anh nội của chíp.
Cách viết hàm ngắt có thể có một vài cách khác nhau. bạn có thể đọc cụ thể trong phần Help của C30.