LCD_RS=2;
LCD_RW=1;
LCD_EN=0;
/* 1번코드
LCD_CTRL &= ~(1<<LCD_RS); //LCD_CTRL=LCD_CTRL & ~(1<<LCD_RS);
LCD_CTRL &= ~(1<<LCD_RW);
LCD_CTRL |= (1<<LCD_EN);
*/
/* 2번코드
LCD_CTRL = 0x00&~(1<<LCD_RS)&~(1<<LCD_RW)|(1<<LCD_EN);
*/
임베디드의 디스플레이를 세팅위한 레지스트 설정입니다.
위의 1번 코드와 2번코드는 식을 계산한 값을 LCD_CTRL에 저장합니다.(계산 결과는 동일합니다.동작도 같은 설정으로 똑같이 잘됩니다. )
저가 질문 드릴것은 1번 코드와 2번코드의 연산 속도가 어떤게 빠를까요???혹은 같을까요??
*********************************************************************************************************************
1번코드는 LCD_CTRL 데이터 불러옴-->~(1<<LCD_RS)를 연산후-->LCD_CTRL과 &연산 후 결과값 LCD_CTRL에 저장
LCD_CTRL 데이터 불러옴-->~(1<<LCD_RW)를 연산후-->LCD_CTRL과 &연산 후 결과값 LCD_CTRL에 저장
LCD_CTRL 데이터 불러옴-->~(1<<LCD_EN)를 연산후-->LCD_CTRL과 &연산 후 결과값 LCD_CTRL에 저장
2번코드는 0X00과 ~(1<<LCD_RS)를 &연산 -->그 결과에 ~(1<<LCD_RW)를 &연산-->그 결과에 (1<<LCD_EN)을 |연산
*********************************************************************************************************************
1번과2번은 하드웨어 적으로 이런식으로 연산되어 진다고 생각합니다.
보다싶이 차이는 1번은 연산을 할때마다 불러오고 저장
2번은 연산을 다 마치고 저장
임베디드가 연산 하는 속도가 빨라서 눈이나 체감하는 속도차이를 확인할수 없지만 분명 하드웨어 적으로 연산과정에서 차이가 있다면 연산속도가 분명히 조금이라도 차이가 있지 않을 까요????
케궁금 케궁금 합니다.