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

네트워크 

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

<C / 리눅스>


=

-FILE *

stdin

stdout

stderr


fprintf( strout, "하이\n"); // 모니터에 출력(쓰기)


=> 모니터정보를 열어서 stdin,stdout,stderr에 파일 포인터 전역으로 선언 (자동으로 compiler가 해줌)

=> 닫기 가능

:fclose 후 printf 실행시 출력X

#include <stdio.h>

int main()
{
  fclose(stdout);
  printf(
"test\n");
  
return 0;
}








- stdout fclose 후 stderr로 출력됨

#include <stdio.h>
int main()
{
    fclose(stdout);
    fprintf(stderr,
"test\n");
    
return 0;
}

=> stderr fclose 후 출력 X

#include <stdio.h>
int main()
{
    fclose(stdout);
    fclose(stderr);
    fprintf(stderr,
"test\n");
    
return 0;
}






=파일에 쓰기/ 읽기

-쓰기 : fputc / fputs

#include <stdio.h>
int main(void)
{
    FILE * fp 
= fopen ("simple.txt""wt");
   
    
if(NULL == fp)
    {
        puts(
"파일오픈 실패!");
        
return -1;
    }

    fputc(
'A', fp);
    fputc(
'B', fp);
    fputs(
"My name is Hong \n", fp);
    fputs(
"Your name is Yoon \n", fp);
    fclose(fp);  
    
return 0;
}




-읽기 : fgetc / fgets

#include <stdio.h>
int main(void)
{
    
char str[30];
    
int ch;
    FILE * fp 
= fopen("simple.txt","rt");
    
if(NULL == fp)
    {
        puts(
"파일오픈 실패!");
        
return -1;
    }

    ch 
= fgetc(fp);
    printf(
"%c \n", ch);
    ch 
= fgetc(fp);
    printf(
"%c \n", ch);
    
    fgets(str, 
sizeof(str), fp);
    printf(
"%s",str);

    fgets(str, 
sizeof(str), fp);
    printf(
"%s",str);
    fclose(fp);
    
return 0;
}






=fopen - mode


-mode : "at" - 끝에 붙여씀



#include <stdio.h>
int main(void)
{
    FILE * fp 
= fopen ("simple.txt""at");
   
    
if(NULL == fp)
    {
        puts(
"파일오픈 실패!");
        
return -1;
    }

    fputc(
'A', fp);
    fputc(
'B', fp);
    fputs(
"My name is Hong \n", fp);
    fputs(
"Your name is Yoon \n", fp);
    fclose(fp);  
    
return 0;
}







-mode : "wt" - 완전 덮어씀









*마그네틱 - 전기 - 밝기 - 모니터

*전부 붙어있음 => 메모장으로 열 때 개행문자 만나면 다음줄로 출력

#include <stdio.h>\nint main()\n.....




=feof : 끝인가?

끝  : 참

끝X : 거짓


-feof : 마지막 + 1 => 끝(가상의 공간까지 가야 참 반환)







-읽은만큼(쓴만큼) 파일포인터 이동



=텍스트파일 내용출력

=cat 파일이름 : 리눅스

=type 파일이름 : DOS






=버퍼크기 잘 선정하기 중요 => 프로그램 성능 결정

=동적 할당

=탐사로봇

=이족보행

=교육용로봇 (발 사이즈 큼)

=아시모(달림,장애인용 로봇(계단)-코난)


=fread / fwrite

- typedef - size_t : unsigned int





- fread : HDD의 파일로부터 읽어서 메모리의 ptr위치에 차례로 담는다

- fwrite : 메모리 ptr위치의 내용을 읽어서(const : 변경불가) HDD의 파일에 쓴다


*함수 인자/기능 추측하는 법 익히기


=pi계정으로 복사




*라즈베리파이 백업하기:클론



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

AVR

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


=AVR2560


=HMI(Human Machine Interface)

-Visual C#







using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _20150430
{
    
public partial class Frm_Main : Form
    {
        
public Frm_Main()
        {
            InitializeComponent();
        }

        
private void Frm_Main_Load(object sender, EventArgs e)
        {
            serialPort1.BaudRate 
= 9600;
            serialPort1.DataBits 
= 8;
            serialPort1.StopBits 
= System.IO.Ports.StopBits.One;
            serialPort1.Handshake 
= System.IO.Ports.Handshake.None;
            serialPort1.Parity 
= System.IO.Ports.Parity.Even;
            serialPort1.PortName 
= "COM4";
            btn_Close.Enabled 
= false;
            btn_Off.Enabled 
= false;
            btn_On.Enabled 
= false;
            timer1.Enabled 
= true;
        }

        
private void btn_Open_Click(object sender, EventArgs e)
        {
            serialPort1.Open();
            btn_Open.Enabled 
= false;
            btn_Close.Enabled 
= true;
            btn_On.Enabled 
= true;
            btn_Off.Enabled 
= true;
        }

        
private void btn_Close_Click(object sender, EventArgs e)
        {
            serialPort1.Close();
            btn_Open.Enabled 
= true;
            btn_Close.Enabled 
= false;
            btn_On.Enabled 
= false;
            btn_Off.Enabled 
= false;
        }

        
private void btn_On_Click(object sender, EventArgs e)
        {
            serialPort1.WriteLine(
"A");
        }

        
private void btn_Off_Click(object sender, EventArgs e)
        {
            serialPort1.WriteLine(
"B");
        }

        
private void Txtbox_TextChanged(object sender, EventArgs e)
        {
            serialPort1.ReadChar();
        }
        
    }
}









=결과




==SERIAL 통신 안되는 환경에서 DATA들어오는지 LED연결해서 확인하는 법



=PWM (방향키 UP : LED 밝게 / DOWN : LED 어둡게)



=RTC ( REAL TIME CLOCK) : 시간정보출력



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

20150504  (0) 2015.05.04
20150501  (0) 2015.05.01
20150429  (0) 2015.04.29
20150428  (0) 2015.04.28
20150427  (0) 2015.04.27
Posted by ahj333
,