2013-12-18 4 views
-1

저는 C 언어가 좋지 않지만 C8051F312 마이크로 컨트롤러에 아주 간단한 코드를 작성했습니다. 코드가 작동하지 않습니다. 내가 잘못한 것을 도와주세요. 당신이C8051f312 마이크로 컨트롤러

2.To는 P1 총장의 7 비트를 configuire처럼 모든

#include C8051F310.h 
#include stdio.h 

sbit LED_16 = P1^7; // green LED: 1 = ON; 0 = OFF 

void init(void) 
{ 
    // XBRN registers_init 
    XBR0 = 0x00; 
    XBR1 = 0x00; // Enable the crossbar 
    PCA0MD = 0X00; 


    // port_init 
    P0MDOUT = 0x00; // Output configuration for P0 
    P1MDOUT = 0x40; // Output configuration for P1 
    P2MDOUT = 0x00; // Output configuration for P2 
    P3MDOUT = 0x00; // Output configuration for P3 
} 

void main(void) 
{ 
    init(); 

    while (1) 
    { 
     LED_16 = 1; // LED continuously illuminated 
    } 
} 
+2

* 어떻게 * 코드가 작동하지 않습니다? 예상되는 결과는 무엇입니까? 실제 결과는 무엇입니까? 'LED_16' 초기화시 XOR 연산을 사용 하시겠습니까? –

+0

* 실제 코드는 근사치가 아닌 게시하십시오. 위의 코드는 컴파일되지 않습니다. –

+0

p1^7은 P1 포트의 7. 비트를 선언하는 배타적 논리 연산이 아니기 때문에 LED를 켜고 싶습니다. 그리고 실제 코드는 ... – user3114492

답변

2

1.First 당신은 #include 지시

#include "path-spec" 
#include <path-spec> 

하지 #include path-spec 2 개 다음 옵션 중 하나를 사용해야합니다 I/O 포트를 푸시 풀 모드로 작동하도록 설정해야합니다.

P1MDOUT = 0x80;

하지

P1MDOUT = 0x40;

관련 문제