Browsing this Thread:
2 Anonymous Users
|
Re: 初學者的小問題
|
|
新會員
Joined
: 2006/8/14 15:23 最後登入時間
: 2007/8/9 14:02
Group:
註冊會員
Level : 1 HP : 0 / 2 MP : 1 / 144 EXP : 10
|
謝謝我試過成功了 感謝你的解答
發表於: 2006/8/15 10:31
|
|
|
Re: 初學者的小問題
|
|
版主
Joined
: 2004/4/30 10:53 最後登入時間
: 2021/11/30 18:11
From CAE, Microchip
Group:
站務管理者 註冊會員
Level : 75 HP : 744 / 1861 MP : 5367 / 111189 EXP : 45
|
因為PORTDㄧ開機就指定只跑一個燈(PORTD=0b00000001) 所以要跑兩個燈就要改PORTD的初始值,且中斷迴圈裡的 Long_Count 的判斷值也要改小。
發表於: 2006/8/14 16:32
|
|
|
初學者的小問題
|
|
新會員
Joined
: 2006/8/14 15:23 最後登入時間
: 2007/8/9 14:02
Group:
註冊會員
Level : 1 HP : 0 / 2 MP : 1 / 144 EXP : 10
|
我剛碰這程式沒多久 請問各位前輩如果我要使下面這個練習一次跑2個燈 我應該如何宣告跟加寫程式 #include <p18f452.h> #include <timers.h> #include <delays.h>
void isr_high(void);
volatile unsigned char Long_Count ; volatile unsigned char Direct_LED ; volatile unsigned char Dir_Count ;
void main(void) { TRISD=0x00; PORTD=0b00000001; RCONbits.IPEN=1; IPR1bits.TMR2IP=1; INTCONbits.GIEH=1;
OpenTimer2 (TIMER_INT_ON & T2_PS_1_16 & T2_POST_1_5);
PR2 = 199;
Long_Count=0; Direct_LED=0; Dir_Count=0;
while(1); }
#pragma code isrhighcode = 0x0008
void isr_high_direct(void) { _asm goto isr_high _endasm } #pragma code
#pragma interrupt isr_high
void isr_high(void) { PIR1bits.TMR2IF=0;
if (Long_Count <= 6) Long_Count++; else { Long_Count=0;
if (Direct_LED==0x00) { PORTD<<=1; Dir_Count++;
發表於: 2006/8/14 15:27
|
|
You can view topic.
你 不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.