-
大小: 23KB文件類型: .rar金幣: 2下載: 0 次發布日期: 2021-05-19
- 語言: 其他
- 標簽:
資源簡介
基于 ATMEGA-16 Timer 的 PWM 與 Proteus 仿真, 在 ICC AVR 平臺開發. 學習 AVR 單片機定時器資源的簡單例子,采用定時器的溢出與比較中斷方式實現的 PWM

代碼片段和文件信息
#include?
#include?
#define?PPM_PORT??PORTB
#define?PPM_DIR???DDRB
#define?PPM_Pin???BIT(7)
unsigned?int?timeValue?=?2100;
#define?Counter?????(65536?-?timeValue)
#define?Compare??? (Counter?+?400)
/*?PPM?初始化?*/
void?PPM_Init(void)
{
/*?--------------?GPIO?管腳初始化?--------------?*/
PPM_PORT?|=?PPM_Pin;
PPM_DIR??|=?PPM_Pin;
? /*?--------------?定時器初始化?--------------?*/
TCNT1?=?Counter;????/*?定時器初值?產生溢出中斷?*/?
OCR1A?=?Compare;????/*?匹配比較輸出?-?0.4ms?高電平?*/
TIMSK??|=?(1?<4)?|?(1?<2);?/*?開啟比較?A?中斷和溢出中斷允許?*/
TCCR1B?|=?0x02;????????????????/*?啟動定時器?普通模式?8?分頻?*/
}
void?Peripheral_Init(void)
{
/*?禁止所有中斷?*/
CLI();???????????
/*?禁止?JTAG?*/
MCUCR??=?0x00;
MCUCSR?=?0x80;??
GICR???=?0x00;
PPM_Init();
/*?開全局中斷?*/
SEI();????
}
/*?T1?比較中斷服務程序?在?TCNT1?=?OCR1A?*/
#pragma?interrupt_handler?timer1_comp_isr:7
void?timer1_comp_isr(void)
{
/*?輸出低電平?持續到溢出中斷?*/?
PPM_PORT?&=?~PPM_Pin; ???
}
/*?T1?溢出中斷服務程序?*/
#pragma?interrupt_handler?timer1_ovf_isr:9
void?timer1_ovf_isr(void)
{
TCNT1?=?Counter;
/*?輸出高電平?持續到溢出中斷?也就是?0.4ms?*/
PPM_PORT?|=?PPM_Pin;???
}
void?main(void)
{
Peripheral_Init();
while(1)
{
NOP();
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????10178??2016-06-25?13:58??2、AVR?-?Timer\Code\Project\main.lis
?????文件???????2607??2016-06-25?13:58??2、AVR?-?Timer\Code\Project\main.o
?????文件???????1819??2016-06-25?13:58??2、AVR?-?Timer\Code\Project\TIMER.cof
?????文件????????808??2016-06-25?13:58??2、AVR?-?Timer\Code\Project\TIMER.dbg
?????文件????????892??2016-06-25?13:58??2、AVR?-?Timer\Code\Project\TIMER.hex
?????文件??????????9??2016-06-25?13:58??2、AVR?-?Timer\Code\Project\TIMER.lk
?????文件???????6764??2016-06-25?13:58??2、AVR?-?Timer\Code\Project\TIMER.lst
?????文件????????612??2016-06-25?13:58??2、AVR?-?Timer\Code\Project\TIMER.mak
?????文件???????1974??2016-06-25?13:58??2、AVR?-?Timer\Code\Project\TIMER.mp
?????文件???????1266??2016-06-25?13:58??2、AVR?-?Timer\Code\Project\Timer.prj
?????文件?????????52??2016-06-25?14:01??2、AVR?-?Timer\Code\Project\TIMER.SRC
?????文件???????1366??2016-06-25?13:58??2、AVR?-?Timer\Code\source\main.c
?????文件??????69802??2016-06-25?13:59??2、AVR?-?Timer\Proteus\Timer.DSN
?????文件???????1338??2016-11-04?20:49??2、AVR?-?Timer\Proteus\Timer.PWI
?????目錄??????????0??2016-06-25?10:27??2、AVR?-?Timer\Code\include
?????目錄??????????0??2016-11-04?14:38??2、AVR?-?Timer\Code\Project
?????目錄??????????0??2016-11-04?14:38??2、AVR?-?Timer\Code\source
?????目錄??????????0??2016-11-04?14:38??2、AVR?-?Timer\Code
?????目錄??????????0??2016-11-04?20:49??2、AVR?-?Timer\Proteus
?????目錄??????????0??2016-11-04?14:38??2、AVR?-?Timer
-----------?---------??----------?-----??----
????????????????99487????????????????????20
- 上一篇:LeetCode cpp最新中文題解.pdf
- 下一篇:Gams 序列號
評論
共有 條評論