C에 제발 도와주세요

G

Guest

Guest
제가 임베디드 시스템 프로그래밍부터 c 배우고 있어요.아래 5 가지 질문 목록을 가지고있다.만약 어떤 사람이 그들을 모두 설명할 수있어도 정말 감사합니다.또는 누군가가 나에게
이런 관례 기댈 수있는 몇 가지 견해를 언급하는 것이 좋습니다?
1 무엇이이
같은 국제 대회입니다 :
안녕하세요 (사본 - 하이테크 C)
# ifndef _PIC_H
_PIC_H 정의 #
특히 내게 많은 밑줄 퍼즐.

2.무슨 징조 &, *, , @,
() 괄호 안에 서명의 의미 안녕 - 기술 ()에서 다음과
정적
@ 비트 LCD_RS (() 서명 & PORTA * 8 2);

3.이 성명을 의미합니까?(하이 - 하이테크 C)
, LCD_STROBE ((LCD_EN = 1)
정의 # (LCD_EN = 0))

4.무엇 밑줄과 <....>이 무슨 뜻 이죠?(sourceboost을 C)
정의
# _LCD_Read LCD_Read <InterfaceType, UseBusy, DataPort, Data_PortTris, CtrlPort, Ctrl_PortTris, RS, RW, E>

5.설명할
수있는 사람
_LCD_TEMPL 및 템플릿

다음과 같은 프로그램의 일환으로 : sourceboost C ()에서
......
/ /이 매크로 susequent 코드를 더 읽기 쉽게 만들지만, 약간의 혼란을 보이는 수있습니다
_LCD_RawWriteNibble LCD_RawWriteNibble <InterfaceType, UseBusy, DataPort, Data_PortTris, CtrlPort, Ctrl_PortTris, RS, RW, E> 정의 #
정의
# _LCD_RawWriteNibbleInline LCD_RawWriteNibbleInline <InterfaceType, UseBusy, DataPort, Data_PortTris, CtrlPort, Ctrl_PortTris, RS, RW, E>
정의
# _LCD_Read LCD_Read <InterfaceType, UseBusy, DataPort, Data_PortTris, CtrlPort, Ctrl_PortTris, RS, RW, E>
정의
# _LCD_WaitForNotBusy LCD_WaitForNotBusy <InterfaceType, UseBusy, DataPort, Data_PortTris, CtrlPort, Ctrl_PortTris, RS, RW, E>
정의
# _LCD_Write LCD_Write <InterfaceType, UseBusy, DataPort, Data_PortTris, CtrlPort, Ctrl_PortTris, RS, RW, E>
정의
# _LCD_FunctionMode LCD_FunctionMode <InterfaceType, UseBusy, DataPort, Data_PortTris, CtrlPort, Ctrl_PortTris, RS, RW, E>
정의
# _LCD_DataMode LCD_DataMode <InterfaceType, UseBusy, DataPort, Data_PortTris, CtrlPort, Ctrl_PortTris, RS, RW, E>
정의
# _LCD_RawWrite LCD_RawWrite <InterfaceType, UseBusy, DataPort, Data_PortTris, CtrlPort, Ctrl_PortTris, RS, RW, E>
정의
# _LCD_ClockOut LCD_ClockOut <InterfaceType, UseBusy, DataPort, Data_PortTris, CtrlPort, Ctrl_PortTris, RS, RW, E>

# 템플릿 _LCD_TEMPL 정의 <서명 숯불 InterfaceType, \
서명 숯불 UseBusy, \
서명되지 않은 int 데이타, 서명 int Data_PortTris, \
서명 int CtrlPort, 서명 int Ctrl_PortTris, \
서명되지 않은 숯불 RS, 서명 숯불 RW를, 서명 숯불 전자>

_LCD_TEMPL
인라인 무효 LCD_FunctionMode (무효)
(
휘발성 비트 RS (에서) CtrlPort.RS = 0;
)

_LCD_TEMPL
인라인 무효 LCD_DataMode (무효)
(
휘발성 비트 RS (에서) CtrlPort.RS = 1;
)
......

 
네, 당신은
C 언어를 먼저 배워야한다.', 당신이 말한 기호, 원인 C 언어로 사용되고있다.

 
난 단지 첫 qustion에 대한 답변을 할 수

질문 1 :
그것 때문에 meanless, identifcation의 이름에서 밑줄 부분이에요.
# ifndef 때문에 <이름을 찾을 때까지
또는 # 각각 endif 컴파일러는 다음 라인 copmile이 <name>은 정의되지 않은 경우 befor # 다른,
befor 정의한 경우,이 부분은 컴파일러와 16 진수 파일을 컴파일되지 않을 것입니다

정의되지 않은 경우에는 다음 _PIC_H 정의하고이 질문이 의미

단순히 유 컴파일러 아주 이해하기가 쉬울 것입니다 u'll에 도움을 검색할 수있습니다.

 
안녕!

전에 마이크로 컨트롤러에 대한 소프트웨어, 배우고 쓰기
먼저 PC에있는 C 프로그래밍.는 ANSI가 탑재된 PC를 사용
준수 C 컴파일러.EXE를 실행하는 것입니다 쓰기 프로그램
a를 MS - DOS 창을 콘솔.당신은
많은 웹 사이트를 찾을 수있습니다
C. 대해 무료 자습서

예 :
http://www.ericlindsay.com/applix/ctutor.pdf

Google과 (검색는 "C"또는
"안녕하세요 - 튜토리얼
C 입문서") 기술.

스위치를 임베디드 시스템을위한 C 컴파일러에 한번
PC를위한 마스터가 C 프로그래밍.

* * *
컴파일러 - 볼랜드 C 를 4.52
C (도).

완벽한 Windows에서 C. 컴파일러와 디버거가 실행을 알아보십시오.
(콘솔의 입력과 출력을 가진 Windows Form으로하지
않습니다MS - DOS 창을 콘솔).
당신은 언어를 컴플 라 이언스 프로젝트의 옵션을 설정할 수있습니다.(Kernighan and Ritchie, ANSI, UNIX V, Borland extensions).
* * *

컴파일러 - 태평양 C에서 MS - DOS를 (하이 - 기술)

무료 한글 MS - DOS를 디버거와 함께이 ANSI C 컴파일러
매뉴얼 PDF 호텔 a 366 페이지 :

http://www.htsoft.com/products/PACIFICc.php

이 컴파일러와 디버거가 실행도를 MS - DOS를
Windows에서 콘솔 창을.
만일 당신이 PIF 파일을 만들려면, 프로그램에서 실행됩니다
마우스를 지원하는 윈도우즈 환경에서 화면을 가득 - DOS 모드.* * *

C에 대한 최초의 책 :

은 C 프로그래밍 언어 (Second Edition에서).
브라이언 W. Kernighan / 데니스 M. 리치
일 ISBN : 0-13-110362-8

루치아노

 
그 C 매크로 단순히 텍스트를 대체하는 기억하십시오.하지만 때로는 수행하기 어려운 매크로, 강력 다른 때 특히 매크로 매크로가 포함되어있습니다.

1.C에서, 밑줄로
A부터 Z를 통해 같은 평범한 캐릭터, 그래서 단순히 _PIC_H 식별자 (함수 이름, 매크로 이름, 등)의 가능성이
다른 정의됩니다.

2.내가 유효합니다 C 언어 @ 생각하지 않아요.그것은 몇 가지 확장하여 컴파일러에 의해 제공될 수있습니다하거나 수있는 토큰을 일부 다른 리기에 의해 인식.표현은 (() 서명 & PORTA * 8 2), PORTA의 주소 소요 서명되지 않은 정수로, 캐스트 8 시까지, 증식과 2를 추가합니다.그런 것은 매우 임베디드는
C 일반적입니다

3.그건 LCD_STROBE라는 매크로를 정의합니다.만약 당신이 프로그램에서 매크로를 사용하여, 그것은 텍스트 ((LCD_EN = 1), (LCD_EN
= 0))는 두 가지 과제로 구분하여 쉼표 연산자를 포함하는 일이 확장합니다.그것은, 그리고 뭔가라는 LCD_EN 1 세트를 0으로 지웁니다.

4.다시 말하지만, 밑줄 그냥 평범한 캐릭터, 그래서 _LCD_Read 단순히 매크로 이름입니다.만약 당신이 프로그램에서 매크로를 사용하여, 그것을 모두 이상한 문자로 확장합니다.누가 무엇을 알고있어!당신은 어디에 사용되고있는
걸 발견 가야 해, 그리고 프로그래머가 무슨 생각을 밖으로 퍼즐.

5.Yuch!나는 비밀을 "서식"생각합니다.그것은 C 언어의 한 부분이고, 그래서 아마 다른 매크로 아직 아니에요.그 정의를 찾아보십시오.

난 그들의 의견을 같이 : "... 보이 수있는 약간의 혼란을".여기에 좋은 도서를 검색하고 도움이 자주 묻는 질문 :
http://www.edaboard.com/viewtopic.php?t=51807
http://www.eskimo.com/ ~ SCS /에 C - faq를 / top.html

 
ahm_hassaan 썼습니다 :

난 단지 첫 qustion에 대한 답변을 할 수질문 1 :

그것 때문에 meanless, identifcation의 이름에서 밑줄 부분이에요.

# ifndef 때문에 <이름을 찾을 때까지 또는 # 각각 endif 컴파일러는 다음 라인 copmile이 <name>은 정의되지 않은 경우 befor # 다른,

befor 정의한 경우,이 부분은 컴파일러와 16 진수 파일을 컴파일되지 않을 것입니다정의되지 않은 경우에는 다음 _PIC_H 정의하고이 질문이 의미단순히 유 컴파일러 아주 이해하기가 쉬울 것입니다 u'll에 도움을 검색할 수있습니다.
 
빠르게는 수영장의 깊은 엔드를 향하여 움직이고있다!

밑줄과 _PIC_H과 같은 식별자를 대문자로 시작합니다.만약 내가 정확히 그 같은 이름이 컴파일러를 만든 사람들이 그것을 읽는 사람에 의해서만 사용할 수있어 기능 C 표준을 말한다.귀하의 프로그램을 만들어서는 안됩니다 또는 귀하의 프로그램에서 같은 이름을 사용하려고합니다.그 규칙은 우연히 서로의 발가락에 스텝에서 컴파일러 작가와 컴파일러 사용자가 도움이됩니다.(난 아마 잘못 - stated 상태가 뭔가가 - 표준의 섹션 7.1.3 독서 나에게 두통을 제공합니다.)

이제야 그 이유를들 _PIC_H 만든 컴파일러을 맞춰 보곤합니다.그것은 표제에서 다른 모든 것들을 방지하는 깃발처럼 보이는 경우에 누군가는 헤더 파일을 포함하도록 시도 두 번 실수를 두 번 정의하고있다.그것은 일반적인 문제의 경우 헤더 파일을 다른 헤더 파일을 포함합니다.왜냐하면 그것이 파일에 대한 플래그가 기억하기 쉬운 이름을 그 이유는 아마도 그들이 그것을 _PIC_H라는 pic.h.

인용구 :

난 여전히 당신의 제 2 회 설명로부터 아무것도 볼 수없습니다.
물론,이 코드에서, 그 LCD의 RS 제어 핀 PORTA 핀 2에 연결되는 것을 의미하지만, 그것이 일종의 문법에 의해 얼마나 나올까요?
 
echo47 쓴 :

빠르게는 수영장의 깊은 엔드를 향하여 움직이고있다!밑줄과 _PIC_H과 같은 식별자를 대문자로 시작합니다.
만약 내가 정확히 그 같은 이름이 컴파일러를 만든 사람들이 그것을 읽는 사람에 의해서만 사용할 수있어 기능 C 표준을 말한다.
귀하의 프로그램을 만들어서는 안됩니다 또는 귀하의 프로그램에서 같은 이름을 사용하려고합니다.
그 규칙은 우연히 서로의 발가락에 스텝에서 작가와 컴파일러 컴파일러는 사용자가 도움이됩니다.
(난 아마 잘못 - stated 상태가 뭔가가 - 표준의 섹션 7.1.3 독서 나에게 두통을 제공합니다.)이제야 그 이유를들 _PIC_H 만든 컴파일러을 맞춰 보곤합니다.
그것은 표제에서 다른 모든 것들을 방지하는 깃발처럼 보이는 경우에 누군가는 헤더 파일을 포함하도록 시도 두 번 실수를 두 번 정의하고있다.
그것은 일반적인 문제의 경우 헤더 파일을 다른 헤더 파일을 포함합니다.
The reason they named it _PIC_H is probably because it's easy to remember that it is a flag for a file named pic.h. 인용구 :

난 여전히 당신의 제 2 회 설명로부터 아무것도 볼 수없습니다.
물론,이 코드에서, 그 LCD의 RS 제어 핀 PORTA 핀 2에 연결되는 것을 의미하지만, 그것이 일종의 문법에 의해 얼마나 나올까요?
 
(() 서명

& PORTA * 8 2); / /

@ 등록 정적 비트 LCD_RS 선택글쎄, 난 이미 언급한 @ 기호가 유효하지 않은 C가있다.내가
무슨 "비트"인지도 모르겠다.그게 어디 붙어있다.

하자 해부 (() 서명 & PORTA * 8 2)

PORTA
알 수없는 정의.아마 다른 헤더 파일에 있어요.

& PORTA
그건 "연산자의"주소입니다.그것 PORTA에 대한 포인터를 생성합니다.

() 서명 & PORTA
(변환)은 부호없는 정수에 주소를 나타냄니다.

() 서명 & PORTA * 8
타임스는 8.

(() 서명 & PORTA * 8 2)
플러스 2.

그게 도움이 된 건가요?

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="윙크" border="0" />
 
(() 서명
& PORTA * 8 2); / /
@ 등록 정적 비트 LCD_RS 선택

여기에 어떤 종류의 casted 비트 데이터 형식을 사용하여 형식있을
수도
 

Welcome to EDABoard.com

Sponsor

Back
Top