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

네트워크 

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

<C>


=

- 데이터 정렬(Sort) => 검색 효율 높임

- 인덱스 방식 : ㄱ ㄴ ...(내림차순, 올림차순)

- 이진트리 (평균적으로 검색 속도가 가장 빠름)


1. 연결리스트 없을 때 => 7.3.6 입력

-포인터

-더블포인터


=

#include <stdio.h>
#include <stdlib.h>

typedef struct _node
{
    
int iNum;
    
struct _node * stNext; //자기참조포인터(*없으면 이론상 무한대 크기)
}node;

void Node_Print(node *);
void Node_Free(node *);

void Node_Init(node * stTemp)
{   
    
if(0 == stTemp)
    {
        
return;
    }

    printf(
"번호를 입력하시오\n");
    scanf(
"%d",&stTemp->iNum);
    stTemp-
>stNext = 0;
    
    
return;
}

node * Node_Insert1(node * stHead)
{
    node * stTemp 
= malloc(sizeof(node));
    Node_Init(stTemp);
    stHead 
= stTemp;    // 함수 종료시 stTemp와 stHead 소멸됨
    
    
return stHead;  // 종료전 stHead의 값을 리턴 => main()의 Head로 넣어줌
}


void Node_Insert2(node ** stHead)
{
    node * stTemp 
= 0;
    
//node * stTemp2 = 0;

    if(0 == stHead)
    {
        
return;
    }

    stTemp 
= malloc(sizeof(node));
    Node_Init(stTemp);

    
if(0 == *stHead) // 처음 한번만 동작
    {
        *stHead 
= stTemp;   // 함수종료시 stTemp와 stHead 소멸되어도
                            // 동적할당 받은메모리는 남아있으며 
                            // main()의 Head는 동적할당 받은 메모리를 가리킨다
        return;
    }
    
/*
    stTemp2 
= *stHead;
    while(stTemp2-
>stNext)
    {
        stTemp2 
= stTemp2->stNext;
    }
*/
        

    
if()
    {

    }





    stHead-
>stNext = stTemp;            
    
//stTemp2->stNext = stTemp;            
    
    
return;
}

int main()
{
    node * Head 
= 0;
    
unsigned int uiCnt;
    
unsigned int uiInput;
//    node * Temp = 0;

/*
    Head 
= malloc(sizeof(node));
    Head-
>iNum = 100;
    Head-
>stNext =  malloc(sizeof(node));   
    Head-
>stNext->iNum = 200; // LINKED LIST(연결리스트) : 목록
    Head-
>stNext->stNext =  malloc(sizeof(node));
    Head-
>stNext->stNext->iNum = 300;
    Head-
>stNext->stNext->stNext = 0;
*/
//    head 
= node_insert1(head); // 포인터
    
    Node_Insert2(
&Head); // 더블포인터 - 1번 호출

    Node_Insert2(&Head); // 2번 호출

    //Node_Insert2(&Head); // 3호출
   
    
//printf("input 자료 개수를 입력하시오\n");
    //scanf("%d",&uiInput);

    //printf("%d-> ",Head->iNum);
    //printf("%d-> ",Head->stNext->iNum);
    //printf("%d-> ",Head->stNext->stNext->iNum);
    /*    Temp = Head;
          while(0 !
= Temp )
          {
            printf("%d-
> ",Temp->iNum);
            Temp 
= Temp->stNext;
          }
          printf("NULL\n"); //putchar('\n');
     */
    Node_Print(Head);
    
/*
       free(Head-
>stNext->stNext); // 반드시 끝에서부터 free
       free(Head-
>stNext);
       free(Head);
     */
    /*
       while(0 !
= Head)
       {
       Temp 
= Head->stNext;
       free(Head);
       Head 
= Temp;
       }
     */
    Node_Free(Head);
    
return 0;
}

void Node_Print(node * Temp)
{
    
while(0 != Temp )
    {
        printf(
"%d-> ",Temp->iNum);
        Temp 
= Temp->stNext;
    }
    printf(
"NULL\n"); //putchar('\n');
    return;
}

void Node_Free(node * Head)
{
    node * Temp;

    
while(0 != Head)
    {
        Temp 
= Head->stNext;
        free(Head);
        Head 
= Temp;
    }
    
return;
}

=





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

AVR

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

=AVR2560




=차동입력 ADC


=ADC 2, 3 PIN 사용









=결과(값이 두배로 나옴..이상함)


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




= 폰 홈버튼 기능처럼 기능

-짧게 화면

-길게 기능



=time counter interrupt overflow 기능

TC 0 1초

-A0 : 스위치 입력

-A4,A5 : LED 출력

-VECTOR





=분주비

1024


=

<INTERRUPT.H>









<INTERRUPT.C>





<MAIN.C>




<MAKEFILE>




=





=결과 

-5초 이하 => LED 5번 ON

-5초 초과 => LED 6번 ON





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

20150513  (0) 2015.05.13
20150512  (0) 2015.05.12
20150508  (0) 2015.05.08
20150507  (0) 2015.05.08
20150506  (0) 2015.05.06
Posted by ahj333
,