제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신6
안녕하세요! Jimae입니다!
저번에는 시리얼 통신 입력을 받는 방법을 했는대 입력을 받는 방법에 대해서 더들어가 보려고 합니다.
입력을 받는 방식은 총 2가지 방법이 있는대
폴링 방식과 인터럽트 방식
이렇게 2가지 타입이 있습니다.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available())
{
char ch = Serial.read();
Serial.print(ch);
}
}
위에 이런 유형의 프로그램 폴링 방식이라는 프로그램입니다.
폴링 방식의 치명적인 단점이 통신 데이터를 놓칠때가 있다는겁니다.
놓친다고 해야하는게
Serial.available() 함수를 실행하면서 시리얼 통신에서 데이터가 들어왔는지 안들어왔는지 계속 감시를 하는구조인대
이방식에서 다른 프로그램이 계속 추가된다고 하면
어떠한 일이 발생할까요?
그것은 나중에 하다보면 아시게 될것인대
뭐 답을 우선 알려드리자면 데이터를 놓칩니다.
현재는 loop함수에서 Serial.available() 이프로그램만 주구장창 사용하고 있기에 별문제가 없었지만
아마 다른 기능들이 점점 추가되면 추가될수록 재기능을 못하고
데이터를 누락하거나 손실이 일어날 것입니다.
그래서 실무적인 프로그램을 만들때
될수있으면 입력되는 값들은 인터럽트 방식으로 구현하고
또한 loop같이 프로그램이 돌아야하는 구간에는 Delay함수를 사용을 아예안해버립니다.
왜냐하면 프로그램 자체가 엄청빠르고 정확하게 돌아야 하거든요.
이게 기본입니다. 엄청빠르고 정확하게 프로그램이 돌아야 제품을 생산하고 출하 해서 팔아먹을수 있는것입니다.
임베디드 분야가 원래 이래요.
기능은 많이 요구하고 빨리 동작하고 정확도를 요구하죠.
자 오늘 설명은 여기까지 하겠습니다.
즉 저번에 했던 시리얼통신 방식은 폴링방식으로써 작은 프로젝트나 실험적으로 써볼만한 함수구요.
인터럽트 방식은 다음에 설명 드려보겠습니다.
좋은 하루 되세요!
제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신1
제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신2
제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신3
제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신4
제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신5
Posted through the AVLE Dapp (https://avle.io)
Upvoted! Thank you for supporting witness @jswit.
신나는 한 주 되세요~~!!!
!shop
你好鸭,jimae!
@garamee21给您叫了一份外卖!
大闸蟹

吃饱了吗?跟我猜拳吧! 石头,剪刀,布~
如果您对我的服务满意,请不要吝啬您的点赞~