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

네트워크 

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


<C>



=double pointer

#include <stdio.h>

void test(int ** PP1, int ** PP2);

int main()
{
  
int * P1;
  
int * P2;

  test(
&P1, &P2);

  printf(
"*P1:%d, *P2:%d",*P1,*P2);
  
return 0;
}

void test(int ** PP1, int ** PP2)
{
  
static int A = 100;
  
static int B = 200;

  *PP1 
= &A;
  *PP2 
= &B;

  
return;
}








=double pointer :

-swap


#include <stdio.h>

void SwapIntPtr(int **dp1, int **dp2)
{
  
int *temp = *dp1  ;
  *dp1 
= *dp2;
  *dp2 
= temp;

  
return;
}

int main(void)
{
  
int num1 = 10, num2 = 20;
  
int *ptr1, *ptr2;
  ptr1 
= &num1, ptr2 = &num2;
  printf(
"*ptr1, *ptr2: %d %d \n", *ptr1, *ptr2);


   SwapIntPtr(
&ptr1, &ptr2); // ptr1rhk ptr2의 주소 값 전달
  printf("*ptr1, *ptr2: %d %d \n", *ptr1, *ptr2);

  
return 0;
}










=포인터 변수 대상의 Call-by-reference

#include <stdio.h>

void SwapIntPtr(int *p1, int *p2)
{
  
int * temp = p1;
  p1 
= p2;
  p2 
= temp;
  
return;
}

int main(void)
{
  
int num1 = 10, num2 = 20;
  
int *ptr1, *ptr2;
  ptr1 
= &num1, ptr2 = &num2;
  printf(
"*ptr1, *ptr2: %d %d \n", *ptr1, *ptr2);

  SwapIntPtr(ptr1, ptr2);
  printf(
"*ptr1, *ptr2: %d %d \n", *ptr1, *ptr2);
  
  
return 0;
}




*

prescaler

1 => 16000000 : 1


16000000      1s

 8000000      0.5s

 1000000      1/16s

   16000       1ms


16000 : 1 => scaler

16000번에 한번 신호줌 : prescaler


=다중 포인터


int *****A;     // int****type 가리키는 포인터 A

int *B;         // int type 가리키는 포인터 B

int **C;

int ***D;

int ****E;


D = &C;

E = &D;

C = &B;

A = &E;



=셋팅 완전히 새로 : su - 계정




=root 계정





=자기계정 root계정으로(편의상)





계정: PASSWD : UID : GID : 신상정보 : 홈디렉토리:SHELL(도스창)

-(((OS 핵심 : KERNEL) 함수,명령) 쉘) USER

-EX) USER -> ls -> shell 해석 -> OS전달

BASH ( BORN AGAIN SHELL)





= UID GID 변경





=역함수 A=>함수=>B

        B=>함수=>A

=oneway

=해쉬함수 1=>함수=>K


=SALT :

=passwd + salt => 암호 찾기 힘듬(슈퍼컴퓨터로 1년)

=shadow파일


=







=GID





=



=chown

=chgrp



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

AVR

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


=AVR2560


=TIMER 인터럽트



=timer로 CPORT 반전

=TIMER OVERFLOW 인터럽트 이용

-동기 : 클럭 같이 사용(클럭 속도/공유방법- 한가닥 추가)-안정적/만들기 힘들다/비싸다

-비동기 : 클럭 다름

=PRESCALER : 분주기





-GTCCR

:TSM





-OCR0A



-OCR0B



-TCCR0A







TCCR0B

:1.WGM02

: CS00 / CS01 / CS02=> 분주(한주기를 나눈다)





-TCNT0



-TIFR0



TIMSK0



(P176)

(P137)

vector_23



=1초마다 깜박이도록

-16MHz CLOCK의 1주기 : 62.5ns


-16us 간격 timer interrupt 발생(62.5ns X 256)OVERFLOW일 때 인터럽트 발생



1024 => 0.016384

1/0.016384 = 61.03515625

<AVR2560.H>




<INTERRUPT.H>




<INTERRUPT.C>




=AVR128



-TCCR0









=

<AVR2560.H>




<INTERRUPT.H>




<INTERRUPT.C>




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

20150422  (0) 2015.04.22
20150421  (0) 2015.04.21
20150417  (0) 2015.04.17
20150416  (0) 2015.04.16
20150415  (0) 2015.04.15
Posted by ahj333
,