Re: 如何改成 左移完右移 重覆此動作!
|
||||
---|---|---|---|---|
版主
|
MPLAB IDE 下選擇 Project --> Project Options --> Project
將 H 檔的路徑加進去 (c:\mcc18\h\),如下圖。 Attach file: (0.00 KB)
發表於: 2009/9/25 14:57
|
|||
|
Re: 如何改成 左移完右移 重覆此動作!
|
||||
---|---|---|---|---|
版主
|
這就是使用 Timer2 霹靂燈的程式。8個 LED 接在 PORTD上。使用 APP001 EVM Board
PIR1bits.TMR2IF=0; // Clear Timer2 interrupt Flag
發表於: 2009/9/25 9:31
|
|||
|
Re: 如何改成 左移完右移 重覆此動作!
|
||||
---|---|---|---|---|
資深會員
|
照你程式寫法的話
可以多設一個變數來決定現在是要左移(變數=0)還是右移(變數=1)
發表於: 2009/9/25 9:01
|
|||
|
Re: 如何改成 左移完右移 重覆此動作!
|
||||
---|---|---|---|---|
新會員
|
blainehs 或 Ryang
能敎我 改成 左移跑完 右移 <--重複 嗎???
發表於: 2009/9/25 2:58
|
|||
|
Re: 請教 PIC18 左移的程式 如何改成 霹靂燈
|
||||
---|---|---|---|---|
版主
|
給你一個使用 Timer2 中斷的範例:
W401 教育訓練裡的練習 5-2
//***************************************************
發表於: 2009/9/24 10:06
|
|||
|
Re: 請教 PIC18 左移的程式 如何改成 霹靂燈
|
||||
---|---|---|---|---|
新會員
|
把這一段:
delay_ms(200); // 延遲200ms if(PORTD<128) // PORTD<128,向左移動 PORTD=(PORTD<<1); else // PORTD>=128,回歸至RD0 PORTD=0X01; 改成這樣: (請自行宣告 int i=0;) for(i=0;i<8;i++) delay_ms(200), PORTD=(PORTD<<1); // PORTD,向左移動 for(i=0;i<8;i++) delay_ms(200), PORTD=(PORTD>>1); // PORTD,向右移動
發表於: 2009/9/24 9:15
|
|||
|
請教 PIC18 左移的程式 如何改成 霹靂燈
|
||||
---|---|---|---|---|
新會員
|
我想讓他 跑完左移 再從右邊跑回來 ~~重複這樣~~
PIC18F4520 想半天 ~~一直修改失敗 請前輩救我~~感激不盡!!! //********************************************************** //* Ex6_2_shift.c //********************************************************** #include <p18f4520.h> // 微控制器硬體名稱宣告 #include <delays.h> // 納入時間延遲函式庫函式原型名稱定義 #define OSC_CLOCK 10 void delay_ms(long A) { //This function is only good for OSC_CLOCK higher than 4MHz long i; int us2TCY; us2TCY=(10*OSC_CLOCK)>>2; // >>2相當於除以4 for(i=0;i<A;i++) Delay100TCYx(us2TCY); } void main (void) { PORTD = 0x01; // 將PORTD設定點亮LED0 TRISD = 0; // 將TRISD設為0,PORTD設定為輸出 while (1) { // 無窮迴圈 delay_ms(200); // 延遲200ms if(PORTD<128) // PORTD<128,向左移動 PORTD=(PORTD<<1); else // PORTD>=128,回歸至RD0 PORTD=0X01; } }
發表於: 2009/9/24 1:38
|
|||
|