BASIC4MCU | 질문게시판 | 답변 : atmega128 센서값 led표현
페이지 정보
작성자 master 작성일2019-12-02 22:32 조회4,526회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=11019
본문
//#include <avr/io.h>#include "ATmega128_v20.h"#include "lcd_num.h"#include "LCD.h"//int main(void){int adc_val;float volt,dust; //unsigned char str[50];//MCU_initialize();Delay_ms(30);LCDInit();LCD_string(0x80," Donga ");LCD_string(0xc0," Electronics ");Delay_ms(1000);LCD_string(0x80," ");LCD_string(0xc0," ");while(1){PORTB=0xF0; Delay_ms(100);PORTB&=~1; Delay_us(280); // PA0,LED ONadc_val=ad_conversion(6); Delay_us(40);PORTB|=1; Delay_us(9680); // PC7,LED OFFvolt=(float)adc_val*5.0/1023.0; // 전압으로 변경dust=((volt*0.17)-1); // 먼지농도 계산Delay_ms(100);LCD_string(0x84,"adc_val: "); LCD_data(0x3A); LCD_4d(adc_val);LCD_string(0xc0,"dust: "); LCD_data(0x3A); LCD_4d(dust);//if (adc_val< 250){ PORTB=0x80; }else if(adc_val< 500){ PORTB=0x40; }else if(adc_val< 750){ PORTB=0x20; }else { PORTB=0x10; }}}
무한루프는 반복해서 계속 동작합니다.
if (adc_val< 250){ PORTB=0x80; }else if(adc_val< 500){ PORTB=0x40; }else if(adc_val< 750){ PORTB=0x20; }else { PORTB=0x10; }제일 아래 이 코드가 실행 된 후에 1us 정도 후에는while(1){PORTB=0xF0;다시 이 코드가 실행 됩니다.
if (adc_val< 250){ PORTB=0x80; }else if(adc_val< 500){ PORTB=0x40; }else if(adc_val< 750){ PORTB=0x20; }else { PORTB=0x10; }즉, 이 코드는 1us 정도 밖에 켜지지 않는 것이라서 눈에 보이지도 않을 겁니다.PORTB=0xF0;이 코드는 왜 작성 한 것이죠?필요 없으면 삭제하세요
댓글 0
조회수 4,526등록된 댓글이 없습니다.