ARM 学习笔记七 (PWM试验)
2016-05-04 来源:eefocus
本实验用到的寄存器如下:
GPBCON -- I/O端口配置寄存器 B
GPBDAT -- I/O端口数据寄存器 B
GPFUP --I/O端口上拉电阻使能寄存器 B
TCFG0 -- 时钟配置寄存器0 (主要是设置预分频)
定时器输入时钟频率=PCLK/{预分频}/{分割值}
{预分频}=1~255
{分割值}=2,4,8,16,32
Address: 0x51000000
Reset value:0x00000000
[7:0]:These 8 bits determine prescaler value for Timer0 and 1
TCFG1 --时钟配置寄存器1(主要是设置分割值)
Address: 0x51000004
Reset value:0x00000000
[3:0]:Select MUX input for PWM Timer0
TCON -- 时钟控制寄存器
Address:0x51000008
Reset value:0x00000000
[0]: Determine start/stop for Timer0 (设置启动/停止)
[1]: Determine the manual update for Timer0 (设置允许手动修改计数)
[2]: Determine the output inverter on/off for Timer0 (设置中断)
[3]: Determine auto reload on/off for timer0
[4]: Determine the dead zone operation
TCNTB0 -- timer0计数缓存寄存器
Address:0x5100000c
Reset value:0x00000000
[15:0]:Set count buffer value for Timer0
TCMPB0 -- timer0比较缓存寄存器
Address:0x51000010
Reset value:0x00000000
[15:0]:Set compare buffer value for Timer0
实验方法:
1.按下k1键,使TOUT0递增占空比
2.按下k2键,使TOUT0递减占空比
3.按下k3键,停止输出
//代码1---参考阿南的例子,这个简单
#include '2410addr.h'
#define KEY1
#define KEY2
#define KEY3
unsigned short freq =0;
//===========================[ SYSTEM ]===================================================
//static int delayLoopCount = 400;
static int delayLoopCount = FCLK/10000/10;
void Delay(int time)
{
}
void PWM_Ini(unsigned short cycle,unsigned short duty){
}
void PWM_Stop(){
}
void PWM_Output(int number){
}
void Main(void){
上面的例子就是按键去抖功能没能调试出来。
//代码2---参考开发板带的例子,这个不好理解
#define GLOBAL_CLK
#include 'def.h'
#include '2440addr.h'
#include 'option.h'
#define KEY1
#define KEY2
#define KEY3
static unsigned int freq;
void PWM_Ini(){
}
void PWM_Stop(){
}
void PWM_Output(int number){
}
void Main(void){
这个例子每次都要重新设置PGB端口。
- 松下汽车电子系统与 Arm 携手推进软件定义汽车标准化
- arm处理器中a5 a8 a9,v6 v7,arm7 arm9 arm11都是依据什么来分类的
- ARM处理器架构
- Linux Kernel之flush_cache_all在ARM平台下是如何实现的
- Arm 引领软件定义汽车革新, 共同迈向汽车行业未来
- arm召开2025二季度财报会,V9架构继续大获成功
- ARM、Intel、MIPS处理器啥区别?看完全懂了
- makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解
- ubuntu下使用qemu模拟ARM(六)------驱动程序
- Ubuntu下安装arm-linux-gnueabi-xxx编译器