资源简介
基于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技术文档
相关资源
- 51单片机上的PWM产生各种波形程序,分
- LED PWM控制调光程序 c51
- 基于单片机的水塔水位控制器设计与
- atmega16 蓝牙通信,舵机控制
- 基于stc89c52rc单片机的红外遥控小车,
- 电流模式的PWM控制器
- 基于FPGA的直流电机PWM控制器设计
- 使用stm32控制彩色级联led WS2818B源程序
- 基于atmega16的modbus通信
- 强大的SPWM正弦表生成工具
- SPWM+一阶积分滤波 multisim文件
- stm32 高级定时器1的互补输出死区设置
- SVPWM.zip
- 基于C8051F系列单片机的无刷直流电机
- 利用51单片机产生可调PWM波
- 28335的SPWM调试
- STM32定时器输出带有死区时间的PWM波形
- 51单片机pwm波,lcd1602,l298n带prtues仿真
- 基于Atmega16湿度传感器源代码
- 基于DSP的恒压频比控制SVPWM方式的研究
- 基于TMS320F28335的三相PWM整流器设计与
- DSP28335 三相SVPWM程序
- STC12C5A60S2内部PWM-DA程序
- 基于ATmega16单片机的定时器中断秒表
- BFM testbench PWM APB
- 基于FPGA的SPWM的程序
- 80C52输出PWM 80C52输出PWM 80C52输出PWM
- 基于空间矢量PWM法的光伏水泵变频控
- 基于msp430单片机PWM调速
- DSP实现SVPWM编程原代码
评论
共有 条评论