历史上的今天
返回首页

历史上的今天

今天是:2024年10月14日(星期一)

正在发生

2021年10月14日 | S3C2440开发板裸机程序系列05—定时器PWM

2021-10-14 来源:eefocus

1. PWM概述


定时器0、1、2和3具有PWM功能。TCNTBn是计数初值,定时器开启后,减1计数。TCMPBn的值是用于比较的,初始值是0,所以TCNTBn减1计数到0时,就等于TCMPBn,此时TOUTn就会翻转。


所以,TCMPBn的值是用于脉宽调制PWM的,即当递减计数器(确切说是TCNTn)的值与定时器控制逻辑中的比较寄存器的值(确切说是TCMPn)相等时,控制逻辑改变输出电平。

TOUT0即是GPB0,GPB0接蜂鸣器,因此可以利用Timer0的PWM功能实现蜂鸣器发声。

如上图可知,需要把GPBCON[1:0] 设置为2。

关于TCON[2] :该位只是定义TOUT0的极性是否反相。只要TCNT0=TCMP0,则TOUT0就会翻转,与TCON[2]无关。


在Timer1定时器程序基础上改进。


timer.c 增加Timer0初始化


void Timer0_Init(void)

{

rGPBCON &= ~(3<<0);

rGPBCON |= (2<<0);

rTCFG0 &= ~(0xFF);

rTCFG0 |= 99; //Prescaler0 = 99

rTCFG1 &= ~(0xF);

rTCFG1 |= 2; //MUX0 = 1/8

rTCNTB0 = 62500; //Timer0  1sec中断1次

rTCMPB0 = rTCNTB0>>1;

rTCON |= (1<<1);

rTCON &= ~(1<<1);

rTCON |= (0xd); //Timer0 on. 0x9--same effect

}

Main.c 修改如下: 


int Main()

{

int flag = 0;

Led_Init();

Key_Init();

// Beep_Init();

Timer1_Init();

Timer0_Init();

while(1)

{

if(rSRCPND & (1<<11)){

flag = !flag;

rSRCPND |= (1<<11);

}

if(1==flag){

LED01_ON;

// Beep_On();

}else{

LED01_OFF;

// Beep_Off();

}

}

return 0;

}


2. 按键控制蜂鸣器以不同频率发声


改进串口函数功能,增加发送单个字符、发送字符串功能函数。其中,发送字符串函数利用了可变参数编程技术。


当按”+”时频率增大,按”-”时频率减小。 


Main.c 


int Main()

{

unsigned char a;

Uart0_Init(115200);

Beep_PWM_Test();

return 0;

}

推荐阅读

史海拾趣

FCI connector [富加宜连接器]公司的发展小趣事

在FCI的发展历程中,贝恩资本的收购起到了关键的作用。贝恩资本是一家在全球近75个工业领域和技术公司有着丰富投资经验的私有投资基金。在2005年收购FCI后,贝恩资本为FCI提供了强大的财力支持和国际业务扩展能力。这些支持使得FCI能够进一步巩固其在全球连接器市场的领先地位。

Herth+Buss Fahrzeugteile GmbH & Co KG公司的发展小趣事
用于防止非法入侵或提醒人员注意。
FOX [Fox Electronics]公司的发展小趣事

进入21世纪后,Fox Electronics意识到全球化对于企业发展的重要性。为了更好地服务全球客户,公司开始在全球范围内布局生产基地和销售网络。通过在亚洲、欧洲和北美等地设立分厂和办事处,Fox Electronics不仅缩短了交货周期,还降低了生产成本,提高了市场竞争力。同时,公司还加强了与全球供应链伙伴的合作,通过优化供应链管理,确保产品质量和交货期的稳定性。

Data Translation Inc公司的发展小趣事

在电子行业中,市场竞争激烈、技术更新换代迅速。Data Translation在发展过程中也遇到了不少挑战和困难。但公司始终坚持以客户为中心、以技术创新为驱动的发展理念,积极应对市场变化和挑战。公司通过加大研发投入、优化产品结构、拓展市场渠道等方式不断提升自身的竞争力和适应能力。这些努力使公司在面对市场变化和挑战时能够保持稳健的发展态势。

EG & G Inc公司的发展小趣事

随着市场竞争的加剧,EG & G Inc公司意识到通过并购和整合来提升自身竞争力的重要性。公司先后收购了多家具有技术优势和市场潜力的企业,将其纳入自己的业务体系。这些并购不仅增强了公司的技术实力和市场地位,也为其未来的发展奠定了坚实的基础。

Curtis Electromusic Specialties Inc公司的发展小趣事

在电子行业的激烈竞争中,CUI公司凭借其在材料科学领域的深厚积累,成功研发出了一种新型高性能碘化亚铜材料。这种材料不仅具有优异的导电性能,而且稳定性极高,能够在极端环境下保持稳定的性能。凭借这一技术创新,CUI公司的产品迅速获得了市场的认可,并在多个关键领域得到广泛应用,从而实现了公司的快速发展。

问答坊 | AI 解惑

请问SAA7113的LLC输出的信号是方波还是其他什么波形

SAA7113的LLC应该是每个像素点的同步信号,请问SAA7113的LLC输出的信号是方波还是其他什么波形?我用的时候,出来的波形是锯齿波,感觉不对?有谁用过,帮我确认一下!…

查看全部问答>

头文件 STC12C5A60S2

挺好的  大家快下…

查看全部问答>

symbian开发介绍

Symbian开发内容介绍热线:010-51292078 021-51875830  0755-61280252 传真:021-62450161   010-62475416业务手机:15921673576曙海培训网站:http://www.51qianru.cn曙海培训曙海培训pads培训Cadence培训Allegro培训<a href=\" ...…

查看全部问答>

新人问个程序移植的土问题,送100分

俺要把一个跑在Windows CE(ARM)上的程序移植到Windows CE(MIPS)上去。 现在已经可以编译链接成功了,但是在Windows CE(MIPS)上一执行exe文件就报错,错误是“找不到($俺的程序名)或它的某一个组件。请确认路径和文件名正确并且所需要的库全部可用 ...…

查看全部问答>

想找omnivision的图像传感器,但是代理商都要求很大的批量才行,我只需要几片,该怎么办呀?

在学校,做东西的时候需要几片CMOS图像传感器,现在选定的是omnivision的ov7740,找了很多代理商,但是都要求要一个包装的才能订货,也就是1700片左右,我的天啊,我哪里能承受地起,现在我该怎么办呢? 之前选定的是cypress赛普拉斯的CMOS图像传 ...…

查看全部问答>

nk.bin大小的问题

wince5.0 nk.bin大于32M不能保存到NANDFLASH,因为进入CE后后面的32M被格式化了(NANDFLASH总共64M),请问怎么才能保存更大的NK.BIN?我想从48M的位置开始格式化,怎么才能做到?…

查看全部问答>

菜鸟问个数据包问题

我手头有个文本文件,内容如下: 0x25, 0x01, 0x01, 0x10, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xd8, 0xcf, 0xc2, 0xa3, 0xb1, 0xb3, 0xac, 0xca, 0xd0, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1, 0xa1 ...…

查看全部问答>

将8051应用程序迁移到ARM Cortex-M处理器上

在网上找到觉得不错特上传,希望给大家一个参考哈 …

查看全部问答>

0.4.0中yaffs2有port了吗?

在读rtt的文档,发现0.3还没有加入yaffs的说,打算在0.4x里加入来?我现在想用0.3加上yaffs有什么办法? [ 本帖最后由 bigmoister 于 2011-3-6 22:25 编辑 ]…

查看全部问答>

STM8S简易版触摸按键程序

看了STM8的触摸按键库,没耐心看下去,就自己写了一个简易版的单触摸按键程序,经过测试,效果还不错,和大家分享一下,有不足之处,大家讨论 简单说下硬件电路,PD6为触摸按键输入,PG1为测试用LED,PA6,PB7为灵敏度微调输入口 ,用的是500K ...…

查看全部问答>