2024/12/11 4

난방실 만들기

HAL_GPIO_TogglePin(GPIOx, GPIO_Pin); 알아서 on/off 해줌 static 파일내 전역변수 원래 함수끝나면 그 안에서 소멸인데 static으로하면 계속 유지됨 //파일내에선 ex) static uint8_t m_state=0; void heaterControll(uint8_t onoff){ HAL_GPIO_WritePin(RELAY_ON_OFF_CTRL_GPIO_Port, RELAY_ON_OFF_CTRL_Pin, onoff); m_state=onoff; } uint8_t getHeaterState(){ return m_state;  // 함수 내에서는 m_state 에 대한 선언 없어도 사용가능 // 그값은 heeaterControll 에서 사용된 그 값이 유지됨 } 열거형 ..

Embedded Software는 무한 Loop

대부분의 Embedded System : 특정한 목적을 가진 System   >  목적달성 > 한 개의 Software가 동작    >  대부분 무한 Loop를 이용해서 구현  > Embedded System의 기능 + Hardware Control도 구현 while (1) { 뭐라뭐라뭐라 void main () {    Lamp_init();    while (1)    {       Lamp_on();       wait (100); /* wait 100uS */       Lamp_off();                  wait (100); /* wait 100uS */    } } }  100uS동안 Lamp가 켜져 있고, 100uS동안 Lamp가 꺼져 있고를 반복하는 Embedded Syst..

6장) RTOS, Kernel

RTOS, 요즘은 Kernel what is Kernel?  OS 없을 때 : User가 모든 기능을 Software가 처리하도록 처음부터 끝까지 작성 OS 등장 :  Software > Hardware에 자동으로 Loading, 실행해 주는 Monitoring 환경         > 실행만 하면 자동으로 Memory에 Loading ex) DOS  모든 Software 공통점 :  I/O   :  Input을 받고 Output을 해주는 Architecture 사용 ex) 키보드, 모니터    >  Monitoring 환경에 아예 집어 넣고 사용  " Operating System "   >  실행만 해주면 자동으로 Memory에 올려서 실행 가능하게 만들어줌 + I/O를 사용할 수 있도록 해줌 (옛날엔..

linked list, Queue

Inter Process Communication (IPC)을 제대로 하려면   > Queue라는 자료구조 Software에서 사용하는 Data > Queue 주로 이용.  ( Stack : 메모리 주소 ). Stack 과 달리  먼저 넣은 놈 먼저 나옴     >  FIFO : 줄세우기  >  대기행렬 > 일종의 Buffer - Stack : push, pop  Queue : put, get Stack push (0x1); // 저장하는곳의 주소가 높은곳에서 작은곳임 push (0x2);  // push (0x2) > 0x2 라는 주소를 저장하는 값임 push (0x3); // 주의! pop (); /* 0x3이 나옵니다. */ pop (); /* 0x2가 나옵니다. */ pop (); /* 0x1이 ..