Atmega128PWM程序
- 格式:pdf
- 大小:60.14 KB
- 文档页数:4


1 1、流水灯 ................................................................................................................................................................. 1
2、AD转换+数码管显示 ........................................................................................................................................ 2
3、对EEPROM进行读写操作 ............................................................................................................................... 8
4、定时器0(轮循方式) ...................................................................................................................................... 9
5、定时器0中中断 ............................................................................................................................................... 10
6、定时器1测试程序 ........................................................................................................................................... 12
飞思卡尔单片机mc9s12dg128的pwm参考程序
大学生参考网 发表时间:10月13日 17:44 提交:demon
#include <> /* common defines and macros */
#include <> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
/*
***
*pwm初始化函数北华大学王盼宝 by demon 2007-5-12
***/
void pwm_initial()//pwm初始化函数
{
PWME=0x22;//通道01,45使能?
PWMPOL=0x22;//通道01,45输出波形开始极性为1
PWMCTL=0x50;//通道01,45级联
PWMCLK=0x02;//通道01选择SA为时钟源
PWMSCLA=0X04;//通道01时钟SA为3MHz(24/(2*4))
PWMPER01=60000;//设定通道01输出频率(50Hz)
PWMPER45=12000;//设定通道45输出频率(2KHz)
}
/*
*** *pwm输出函数 by demon 2007-5-12
*程序描述;由输入参数向舵机和电机输出相应pwm
*参数:舵机方向:3300-5700 速度:0-12000
***/
void pwm(int speed,int direction)//pwm
{
pwm_initial();
if(direction<3300) direction=3300;?
if(direction>5700) direction=5700;?
PWMDTY01=direction;
if(speed>12000) speed=12000;
PWMDTY45=speed;
}
飞思卡尔单片机mc9s12dg128的io口初始化参考程序
大学生参考网 发表时间:10月13日 17:47 提交:demon
ATmega128 单片机硬件电路设计
在本系统中,本小节主要讲 ATmega128 单片机的内部资源、工作原理和硬 件电路设计等。 2.5.1 ATmega128 芯片介绍 ATmega128 为基于AVR RISC 结构的8 位低功耗CMOS 微处理器。片内 ISP Flash 可以通过SPI 接口、通用编程器,或引导程序多次编程。引导程序可以使 用任何接口来下载应用程序到应用Flash 存储器。通过将8 位RISC
CPU 与系统 内可编程的Flash 集成在一个芯片内,
ATmega128 为许多嵌入式控制应用提供 了灵活而低成本的方案。 ATmega128 单片机的功能特点如下: (1)高性能、低功耗的AVR 8 位微处理器 (2)先进的RISC 结构 ①
133 条指令大多数可以在一个时钟周期内完成 ② 32x8 个通用工作寄存器+外设控制寄存器 ③ 全静态工作 ④ 工作于16 MHz 时性能高达16 MIPS ⑤ 只需两个时钟周期的硬件乘法器 (3)非易失性的程序和数据存储器 ① 128K 字节的系统内可编程Flash ② 寿命: 10,000 次写/ 擦除周期
③ 具有独立锁定位、可选择的启动代码区 (4)通过片内的启动程序实现系统内编程 ① 4K 字节的EEPROM ② 4K
字节的内部SRAM ③ 多达64K 字节的优化的外部存储器空间 ④ 可以对锁定位进行编程以实现软件加密 ⑤ 可以通过SPI 实现系统内编程 (5)JTAG 接口( 与IEEE 1149.1
标准兼容) ① 遵循JTAG 标准的边界扫描功能 ② 支持扩展的片内调试 ③ 通过JTAG 接口实现对Flash, EEPROM,
熔丝位和锁定位的编程 (6)外设特点 ① 两个具有独立的预分频器和比较器功能的8 位定时器/ 计数器 ② 两个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器
③ 具有独立预分频器的实时时钟计数器 ④ 两路8 位PWM ⑤ 6 路分辨率可编程(2 到16 位)的PWM ⑥ 输出比较调制器 ⑦ 8 路10 位ADC ⑧ 面向字节的两线接口 ⑨
ATmega128几个常用程序例子
ATMEGA128相关例程
自己学avr单片机已经有相当一段时间了,一开始用的是atmega128,觉得不是很好用。于是自己去买了一块16L的芯片,觉得还行。一开始用的是ICC AVR,应为它用起来比较简单,不像winavr那样,要写个Makefie
,比较的麻烦,但icc avr的缺点是太过于简陋,调试程序时,感觉不是很好。后来经同学介绍,用起了winavr,其实也是比较的简单,只不过要加一个makefile而已,其实makefile可以用软件自带的组建自动生成,只需修改几个参数就可以用。后来又用起了code vision avr,虽然不太习惯,也谈不上不好用.
需要注意的是,三个不同的软件所带的同文件不一样。icc avr 是iom128v.h(姑且以128为例),winavr是avr/io.h,不过makefile中要设置芯片为atmega128.而cvavr则是mega128.h。
记得一开始的时候,我对这些不同的同文件不是很理解,是从一个学长那里了解到,才弄明白的。其实前两个软件只需把头文件稍微改一下基本上可以通用。而最后一个软件的中断的写法似乎不太一样,因而和钱两个软件的兼容性是最差的。
总体说winavr给人的感觉是比较专业
自己学习时多总结吧!
1、流水灯
/*
硬件环境:atmega128开发板
软件环境:CodeVisionAVR-C
*/
#include
#define uchar unsigned char
#define uint unsigned int
uchar cnt;
void timer1_init()
{
TCCR1B=0X00; //先停止定时器1
TCNT1H=0XF0; //设定定时器初值
TCNT1L=0XBE;
TCCR1A=0X00; //启动定时器1