1) 지식 창고는 본인이 작성한 콘텐츠(팁/노하우/리소스/강좌 등)을 무료 혹은 가상화폐인 납포인트를 통해 공유하는 공간입니다.
2) 본인이 작성한 콘텐츠에 대해서만 지식 창고에 등록할 수 있으며, 저작권에 위배되는 콘텐츠는 사전경고 없이 삭제될 수 있습니다.
3) 콘텐츠 구매 및 첨부파일 다운로드는 회원그룹 '연구원' 이상 가능하오니, 경험치를 쌓아 진급한 후에 이용 부탁드립니다.
4) 무료 콘텐츠의 본문은 구매절차 없이 즉시 이용할 수 있으며, 판매 납포인트가 있는 콘텐츠는 구매 후 이용할 수 있습니다.
5) 콘텐츠 판매에 따른 납포인트 수익은 지정한 비율(50%)에 따라 판매자에게 지급하며, 납포인트 수익을 통해 진급을 빨리할 수 있습니다.
6) 구매 후 평가를 하면 구매 납포인트의 20%를 돌려 드립니다.
판매자 | 아미야 | 판매 납포인트 | 무료 | 평점 | 0점 / 총 0명 참여 |
---|
PWM 기능을 이용하여 PWM 값을 LCD 모듈에 출력하고 DC모터를 회전시킬 수 있도록
#include<avr/iom128.h>
#include<avr/interrupt.h>
#include<compat/deprecated.h>
#include"delay.h"
void port_init()
{
DDRA = 0x01;
PORTA = 0x00;
}
//오버플로우를 이용한 모터 구동
int main()
{
port_init();
TCCR0 = 0x6E; //fast PWM,256,오버플러우 oc0=1출력
TIMSK = 0x01;
TIFR = 0x01;
TCNT0 = 156;
sei();
while(1)
{
}
return 0;
}
ISR(TIMER0_OVF_vect)
{
if(PORTA==0x00)
PORTA=0x01;
else
PORTA=0x00;
}
-------------------------------------
#include<avr/io.h>
#include<avr/iom128.h>
#include<avr/interrupt.h>
#include<compat/deprecated.h>
#include"delay.h"
void port_init()
{
DDRA = 0x01;
PORTA = 0x00;
}
//COMP를 이용한 모터제어
int main()
{
port_init();
TCCR0 = 0x6E; //fast PWM,256,오버플러우 oc0=1출력
TIMSK = 0x02;
TIFR = 0x02;
OCR0 = 156;
sei();
while(1)
{
}
return 0;
}
ISR(TIMER0_COMP_vect)
{
if(PORTA==0x00)
PORTA=0x01;
else
PORTA=0x00;
}
--------------------------------------
#include<avr/io.h>
#include<avr/iom128.h>
#include<avr/interrupt.h>
#include<compat/deprecated.h>
#include"delay.h"
int main()
{
DDRB = 0xFF;
PORTB = 0x00;
//TIMSK = 0x02; //TIMSK "0000 0010" match 인터럽트 활성화 , 오버플로어 비활성화
//TIFR = 0x02; // TIFR "0000 0010" match 활성화
TCCR0 = 0x65; // TCCR0 "0110 0110" FOC0= 0 , WGM00 = 1 , COM01 = 1, COM00 = 0 , WGN01 = 0 ,CS0 = 110
// WGM0 = 01 PWM모드 , COM0 = 10 하향에서 1 ,CSO = 110 프리스케어 256
TCNT0 = 0x9C; // 주기
OCR0 = 100;
while(1)
{
}
return 0;
}