資源簡介
基于ATMega16的PWM程序,需要的下吧

代碼片段和文件信息
//包含所需頭文件
#include?
#include?
#include?
/*------宏定義------*/
#define?uchar unsigned?char
#define?uint unsigned?int
#define?BIT(x) (1<<(x))
#define?NOP() asm(“nop“)
#define?WDR()? asm(“wdr“)
//端口初始化
void?port_init(void)
{
PORTA?=?0x00;
DDRA??=?0xFF;
PORTB?=?0x00;
DDRB??=?0xFF;
PORTC?=?0x00;
DDRC??=?0xFF;
PORTD?=?0x00;
DDRD??=?0xFF;
}
//定時器T0初始化
void?timer0_init(void)
{
TCCR0??=?0x00;//停止定時器
TCNT0??=?0x00;//初始值
OCR0???=?0x7F;//匹配值
TIMSK?|=?0x02;//中斷允許
TCCR0??=?0x79;//啟動定時器
}
//T0比較中斷服務程序
//#pragma?interrupt_handler?timer0_comp_isr:20
//void?timer0_comp_isr(void)
SIGNAL(SIG_OUTPUT_COMPARE0)
{
//中斷發生時刻在TCNT0=OCR0
}
//定時T1初始化
void?timer1_init(void)
{
TCCR1B?=?0x00;//停止定時器
TIMSK?|=?0x18;//中斷允許
TCNT1H?=?0x00;
TCNT1L?=?0x00;//初始值
OCR1AH?=?0x01;
OCR1AL?=?0xFF;//匹配A值
OCR1BH?=?0x01;
OCR1BL?=?0xFF;//匹配B值
ICR1H??=?0xFF;
ICR1L??=?0xFF;//輸入捕捉匹配值
TCCR1A?=?0xE3;
TCCR1B?=?0x09;//啟動定時器
}
//定時器T1匹配中斷A服務程序
//#pragma?interrupt_handler?timer1_compa_isr:7
//void?timer1_compa_isr(void)
SIGNAL(SIG_OUTPUT_COMPARE1A)
{
//compare?occured?TCNT1=OCR1A
}
//定時器T1匹配中斷B服務程序
//#pragma?interrupt_handler?timer1_compb_isr:8
//void?timer1_compb_isr(void)
SIGNAL(SIG_OUTPUT_COMPARE1B)
{
//compare?occured?TCNT1=OCR1B
}
//定時器T2初始化
void?timer2_init(void)
{
TCCR2??=?0x00;//停止定時器
ASSR???=?0x00;//異步時鐘模式
TCNT2??=?0x00;//初始值
OCR2???=?0x7F;//匹配值
TIMSK?|=?0x80;//中斷允許
TCCR2??=?0x71;//啟動定時器
}
//T2比較中斷服務程序
//#pragma?interrupt_handler?timer2_comp_isr:4
//void?timer2_comp_isr(void)
SIGNAL(SIG_OUTPUT_COMPARE2)
{
//中斷發生時刻在TCNT2=OCR2
}
void?init_devices(void)
{
cli();?//禁止所有中斷
MCUCR??=?0x00;
MCUCSR?=?0x80;//禁止JTAG
GICR???=?0x00;
port_init();
timer0_init();
timer1_init();
timer2_init();
sei();//開全局中斷
}
//主函數
int?main(void)
{
init_devices();
//在這繼續添加你的代碼
while(1)
{
?NOP();
}
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????706??2009-06-16?21:16??atmega16-pwm\.dep\main.o.d
?????文件???????7597??2009-06-16?21:21??atmega16-pwm\1.png
?????文件??????98713??2009-06-16?21:21??atmega16-pwm\2.png
?????文件??????60511??2009-06-16?21:17??atmega16-pwm\Last?Loaded?pwm.DBK
?????文件???????2191??2009-06-16?21:16??atmega16-pwm\main.c
?????文件?????????13??2009-06-16?21:16??atmega16-pwm\main.eep
?????文件???????5571??2009-06-16?21:16??atmega16-pwm\main.elf
?????文件???????1048??2009-06-16?21:16??atmega16-pwm\main.hex
?????文件???????9814??2009-06-16?21:16??atmega16-pwm\main.lss
?????文件??????11629??2009-06-16?21:16??atmega16-pwm\main.lst
?????文件??????12693??2009-06-16?21:16??atmega16-pwm\main.map
?????文件???????4412??2009-06-16?21:16??atmega16-pwm\main.o
?????文件???????1372??2009-06-16?21:16??atmega16-pwm\main.sym
?????文件??????14815??2009-03-29?15:09??atmega16-pwm\Makefile
?????文件??????60444??2009-06-16?21:21??atmega16-pwm\pwm.DSN
?????文件???????1364??2009-06-16?21:21??atmega16-pwm\pwm.PWI
?????目錄??????????0??2009-06-16?21:03??atmega16-pwm\.dep
?????目錄??????????0??2009-06-16?21:21??atmega16-pwm
-----------?---------??----------?-----??----
???????????????292893????????????????????18
- 上一篇:計算機專業 實習日記
- 下一篇:pyexcel技術文檔
評論
共有 條評論