==========================================================================================

S.C.

=======================================================================================


=함수

#include <stdio.h>

int Add(int iNum1, int iNum2)
{
  
return iNum1+iNum2; // CPU 에서 + => 36
}

void ShowAddResult(int iNum)
{
  printf(
"덧셈결과 출력: [%d] \n", iNum);
  
return;
}

int ReadNum(void)
{
  
int iNum;
  scanf(
"%d"&iNum);
  
return iNum;
}

void HowToUseThisProg(void)
{
  printf(
"두 개의 정수를 입력하시면 덧셈결과가 출력됩니다. \n");
  printf(
"두 개의 정수를 입력하세요 \n");
  
return;
}

int main(void)
{
  
int iResult, iNum1, iNum2; // main()의 지역변수

  HowToUseThisProg();
  iNum1 
= ReadNum(); // iNum1 = 12; (ReadNum()의 iNum사라지고 CPU Register 12 복사 => 대입)
  iNum2 = ReadNum(); // iNum2 = 24;
  iResult = Add(iNum1, iNum2); // iResult =36;
  ShowAddResult(iResult); 
  
return 0;
}



=

#include <stdio.h>

int main()
{
  
int iNum1; //피제수
  int iNum2; //제수
  
  printf(
"피제수를 입력하시오.\n");
  scanf(
"%d",&iNum1);

  printf(
"제수를 입력하시오.\n");
  scanf(
"%d",&iNum2);  

  printf(
"몫은 [%d]입니다 \n",iNum1/iNum2);
  printf(
"나머지는 [%d]입니다 \n",iNum1%iNum2);

  
return 0;
}




=

#include <stdio.h>

int main()
{
  
int iNum1; //피제수
  int iNum2; //제수
  
  printf(
"피제수를 입력하시오.\n");
  scanf(
"%d",&iNum1);

  printf(
"제수를 입력하시오.\n");
  scanf(
"%d",&iNum2);  

  
if(0 == iNum2) // '==' -> '=' 으로 실수 할 경우 컴파일 에러 발생하도록 (상수 == 변수)
  {
    printf(
"0으로 나눌 수 없습니다. \n");  
    
return 100// 함수의 중단        
  }
  printf(
"몫은 [%d]입니다 \n",iNum1/iNum2);
  printf(
"나머지는 [%d]입니다 \n",iNum1%iNum2);

  
return 0
}







=지역변수(Local Variable)

#include <stdio.h>

int main()
{
  
int iNum=100;
  
  printf(
"iNum : [%d]\n",iNum);
  {

    
int iNum=200;
    printf(
"iNum : [%d]\n",iNum);

  }    
  printf(
"iNum : [%d]\n",iNum);

  
return 0;
}


-변수의 생명주기




#include <stdio.h>

int main()
{
  
int iNum=100;

  ++iNum;

  printf(
"iNum : [%d]\n",iNum);
  {

    
int iNum=200;
    printf(
"iNum : [%d]\n",iNum);
    ++iNum;

  }  
  
  ++iNum;

  printf(
"iNum : [%d]\n",iNum);

  
return 0;
}





#include <stdio.h>

int main()
{
  
int iNum=1;
  
  
if(1==iNum)
  {
    
int iNum = 7// main 함수의 iNum 가리워진다
    iNum+=10;
    printf(
"if문 내 지역변수 iNum : [%d] \n",iNum);
  }
  
  printf(
"main함수 내 지역변수 iNum : [%d] \n", iNum);
  
return 0;
}






#include <stdio.h>

int main()
{
  
int iNum=1;
  
  
if(1==iNum)
  {
    
// int iNum = 7;
    iNum+=10;
    printf(
"if문 내 지역변수 iNum : [%d] \n",iNum);
  }
  
  printf(
"main함수 내 지역변수 iNum : [%d] \n", iNum);
  
return 0;
}






-매개변수 => 지역변수 => 자동변수(automatic variable)






=전역변수 (Gloval Variable)

#include <stdio.h>

void Add(int iVal);
int iNum; // 전역변수 (Gloval Variable) 모든 전역변수 영역 bit 0으로 => 변수 할당 => 0

int main(void)
{
  printf(
"iNum : [%d] \n",iNum);
  Add(
3);
  printf(
"iNum : [%d] \n",iNum);
  ++iNum;
  printf(
"iNum : [%d] \n",iNum);
  
return 0;
}

void Add(int iVal)
{
  iNum +
= iVal;
}





=

#include <stdio.h>

int B0;
int B1;
int B2;
int B3;
int B4;
int B5;
int B6;
int B7;
int B8;
int B9;

int main()
{
  
int A1;
  
int A2;    
  
int A3;    
  
int A4;    
  
int A5;    

  printf(
"A1     : [%08x]\n",&A1);
  printf(
"A2     : [%08x]\n",&A2);
  printf(
"A3     : [%08x]\n",&A3);
  printf(
"A4     : [%08x]\n",&A4);
  printf(
"A5     : [%08x]\n",&A5);

  printf(
"B0     : [%08x]\n",&B0);
  printf(
"B1     : [%08x]\n",&B1);
  printf(
"B2     : [%08x]\n",&B2);
  printf(
"B3     : [%08x]\n",&B3);
  printf(
"B4     : [%08x]\n",&B4);
  printf(
"B5     : [%08x]\n",&B5);
  printf(
"B6     : [%08x]\n",&B6);
  printf(
"B7     : [%08x]\n",&B7);
  printf(
"B8     : [%08x]\n",&B8);
  printf(
"B9     : [%08x]\n",&B9);

  printf(
"main   : [%08x]\n",main);
  printf(
"printf : [%08x]\n",printf);
  printf(
"scanf  : [%08x]\n",scanf);

  
return 0;
}





=visual studio




=> 

 전역변수 값 셋팅



=> 전역변수 여러개 값 셋팅










==========================================================================================

디지털회로

=======================================================================================


https://cms.koreatech.ac.kr/user/yjjang/digi09/ch04.pdf


=논리게이트 / 논리레벨


-TTL과 CMOS 논리레벨 정의 영역

74LS - TTL((트랜지스터 트랜지스터 로직 컨트롤) : 트랜지스터의 증폭/스위칭 기능중 스위칭 기능 사용)


74HC - CMOS



=기본 논리게이트 동작원리/진리표/게이트 기호

-NOT GATE (7404 / 7414)



-신포 증폭 비슷 (먼거리에서도 원신호에 가깝게)

=> NOT GATE 2개로 대체해서 많이 사용






-AND 








-OR






-NAND






-NOR





-XOR (덧셈/AND - 올림수 처리)





-=BCD-7 세그먼트 디코더

--가지 타입

-OMMON-CATHODE (+) 극 COMMON

-OMMON-ANODE (-) 극 COMMON


=인코더


=플립플롭


=숫자 카운트(버튼입력:카운트/리셋)


=시계만들기

'2015 스마트 콘트롤러 > 업무일지' 카테고리의 다른 글

20150312  (0) 2015.03.12
20150311  (0) 2015.03.11
20150309  (0) 2015.03.09
20150306  (0) 2015.03.06
20150305  (0) 2015.03.05
Posted by ahj333
,