我想在第一次完成時反轉代碼。例如,針腳1針腳2針腳3針腳4(它是完整的)現在它應該作爲針腳4針腳3針腳2針腳運行。我想按相反順序閃爍LED
我寫了這段代碼,但它不是按相反的順序工作的。請用這種方式指導我。
#include<htc.h>
__CONFIG(1,OSCSDIS & HSPLL);
__CONFIG(2,BORDIS & PWRTDIS &WDTDIS);
__CONFIG(3,CCP2RC1);
__CONFIG(4,LVPDIS & STVREN);
__CONFIG(5,UNPROTECT);
__CONFIG(6,WRTEN);
__CONFIG(7,TRU);
define _XTAL_FREQ 40000000
void delay_sec(unsigned char seconds) // This function provides delay in terms of seconds
{
unsigned char i,j;
for(i=0;i<seconds;i++)
for(j=0;j<100;j++)
__delay_ms(10);
}
void led_display(char a)
{
switch(a)
{
case 0: PORTB=0x01;PORTD=0x08; break;
case 1: PORTB=0x02;PORTD=0x04; break;
case 2: PORTB=0x04;PORTD=0x02; break;
case 3: PORTB=0x08;PORTD=0x01; break;
}
}
void main()
{
TRISB=0x00; TRISD=0x00; char a,b;
while(1) {
led_display(a);
a++;
delay_sec(1);
if(a==4) {
a--;
}
}
}
請縮進您的代碼,使其可讀。 – RedX 2014-10-31 07:10:49
@RedX我懷疑它不會編譯:'define _XTAL_FREQ 40000000' – tangrs 2014-10-31 07:16:20
我知道這是一個不同的問題,但爲什麼你使用兩個循環和一個10毫秒的延遲睡眠一秒?在Linux上調用睡眠(3C)還是在Windows上睡眠不是更好嗎? – AnotherSmellyGeek 2014-10-31 07:24:13