91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-13
  • 語言: 其他
  • 標簽: TimerOne??

資源簡介

TimerOne庫文件

資源截圖

代碼片段和文件信息

/*
?*??Interrupt?and?PWM?utilities?for?16?bit?Timer1?on?ATmega168/328
?*??Original?code?by?Jesse?Tane?for?http://labs.ideo.com?August?2008
?*??Modified?March?2009?by?Jér?me?Despatis?and?Jesse?Tane?for?ATmega328?support
?*??Modified?June?2009?by?Michael?Polli?and?Jesse?Tane?to?fix?a?bug?in?setPeriod()?which?caused?the?timer?to?stop
?*
?*??This?is?free?software.?You?can?redistribute?it?and/or?modify?it?under
?*??the?terms?of?Creative?Commons?Attribution?3.0?United?States?License.?
?*??To?view?a?copy?of?this?license?visit?http://creativecommons.org/licenses/by/3.0/us/?
?*??or?send?a?letter?to?Creative?Commons?171?Second?Street?Suite?300?San?Francisco?California?94105?USA.
?*
?*/

#include?“TimerOne.h“

TimerOne?Timer1;??????????????//?preinstatiate

ISR(TIMER1_OVF_vect)??????????//?interrupt?service?routine?that?wraps?a?user?defined?function?supplied?by?attachInterrupt
{
??Timer1.isrCallback();
}

void?TimerOne::initialize(long?microseconds)
{
??TCCR1A?=?0;?????????????????//?clear?control?register?A?
??TCCR1B?=?_BV(WGM13);????????//?set?mode?as?phase?and?frequency?correct?pwm?stop?the?timer
??setPeriod(microseconds);
}

void?TimerOne::setPeriod(long?microseconds)
{
??long?cycles?=?(F_CPU?*?microseconds)?/?2000000;????????????????????????????????//?the?counter?runs?backwards?after?TOP?interrupt?is?at?BOTTOM?so?divide?microseconds?by?2
??if(cycles???else?if((cycles?>>=?3)???else?if((cycles?>>=?3)???else?if((cycles?>>=?2)???else?if((cycles?>>=?2)???else????????cycles?=?RESOLUTION?-?1?clockSelectBits?=?_BV(CS12)?|?_BV(CS10);??//?request?was?out?of?bounds?set?as?maximum
??ICR1?=?pwmPeriod?=?cycles;?????????????????????????????????????????????????????//?ICR1?is?TOP?in?p?&?f?correct?pwm?mode
??TCCR1B?&=?~(_BV(CS10)?|?_BV(CS11)?|?_BV(CS12));
??TCCR1B?|=?clockSelectBits;?????????????????????????????????????????????????????//?reset?clock?select?register
}

void?TimerOne::setPwmDuty(char?pin?int?duty)
{
??unsigned?long?dutyCycle?=?pwmPeriod;
??dutyCycle?*=?duty;
??dutyCycle?>>=?10;
??if(pin?==?1?||?pin?==?9)???????OCR1A?=?dutyCycle;
??else?if(pin?==?2?||?pin?==?10)?OCR1B?=?dutyCycle;
}

void?TimerOne::pwm(char?pin?int?duty?long?microseconds)??//?expects?duty?cycle?to?be?10?bit?(1024)
{
??if(microseconds?>?0)?setPeriod(microseconds);
??if(pin?==?1?||?pin?==?9)?{
????DDRB?|=?_BV(PORTB1);???????????????????????????????????//?sets?data?direction?register?for?pwm?output?pin
????TCCR1A?|=?_BV(COM1A1);?????????????????????????????????//?activates?the?output?pin
??}
??else?if(pin?==?2?||?pin?==?10)?{
????DDRB?|=?_BV(PORTB2);
????TCCR1A?|=?_BV(COM1B1);
??}
??setPwm

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4092??2009-06-26?14:34??TimerOne\TimerOne.cpp

?????文件???????1335??2009-06-26?14:35??TimerOne\TimerOne.h

?????文件????????171??2009-06-26?14:34??TimerOne\__MACOSX\._TimerOne.cpp

?????文件????????171??2009-06-26?14:35??TimerOne\__MACOSX\._TimerOne.h

?????目錄??????????0??2009-06-26?14:35??TimerOne\__MACOSX

?????目錄??????????0??2011-08-24?17:35??TimerOne

-----------?---------??----------?-----??----

?????????????????5769????????????????????6


評論

共有 條評論

相關資源