历史上的今天
返回首页

历史上的今天

今天是:2025年08月14日(星期四)

正在发生

2020年08月14日 | STM8单片机PWM应用

2020-08-14 来源:elecfans

PD3复用功能是TIM2_CC2,正好可以用来测试PWM功能。本例程通过电位器调整PWM脉宽来调整接在PD3的LED1亮度。


#include

void CLK_init(void)

{

CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M

}

void GPIO_init(void)

{

PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出

PD_CR1 = 0x08; // 设置PD3为推挽输出

}

void TIM2_init(void)

{

TIM2_CCMR2 = 0x70; // PWM模式 2

TIM2_CCER1 = 0x30; // CC2配置为输出

TIM2_ARRH = 0x03;// 配置PWM分辨率为10位,ARR=0x3FF

TIM2_ARRL = 0xFF;// PWM频率=8M/0x03FF=7820Hz

TIM2_CR1 = 0x01; // 计数器使能,开始计数

}

void ADC_init(void)

{

ADC_CSR = 0x03; // ADC输入引脚AIN3

ADC_CR1 = 0x01; // ADC开启

}

void Run(void)

{

unsigned int value;

ADC_CSR &= ~0x80;//清除EOC转换结束标志

ADC_CR1 |= 0x01; //开始单次转换

while(!(ADC_CSR&0x80)); //等待单次转换完成

value = ((int)ADC_DRH《《2); // 先读高8位,默认设置数据左对齐

value |= ADC_DRL; // 再读低8位

TIM2_CCR2H = (unsigned char)(value》》8); // 更新CC2比较寄存器

TIM2_CCR2L = (unsigned char)(value);

}

void init_devices(void)

{

asm(“sim”);//禁止中断

CLK_init();

GPIO_init();

TIM2_init();

ADC_init();

asm(“rim”); //使能中断

}

void main( void )

{

init_devices();

while(1) Run();

}

推荐阅读

史海拾趣

AEM [ American Electronic Materials]公司的发展小趣事

随着全球经济的不断发展,AEM意识到要想在激烈的竞争中保持领先地位,必须进一步拓展全球市场。于是,公司开始实施全球扩张战略,积极开拓新的市场和业务领域。

在这个过程中,AEM与多家国际知名企业建立了战略合作关系。通过合作,AEM成功进入了欧洲、亚洲等多个重要市场,进一步提升了公司的品牌影响力和市场份额。同时,这些合作也为AEM带来了更多的技术资源和市场机会,促进了公司的持续发展。

ABL Aluminum Components公司的发展小趣事

随着业务规模的不断扩大,ABL公司开始面临供应链管理的挑战。为了应对这一挑战,公司引入了先进的供应链管理系统,实现了从原材料采购、生产制造到产品销售的全程监控。同时,ABL公司还与供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和成本控制。通过优化供应链管理,ABL公司提高了生产效率和市场响应速度,进一步巩固了市场地位。

Daburn公司的发展小趣事

随着公司规模的不断扩大,Daburn开始积极拓展国际市场。公司通过参加国际展览、与国外企业建立合作关系等方式,将产品推向全球市场。同时,Daburn还注重与当地企业的合作,共同开发符合当地市场需求的产品。这种市场拓展策略让Daburn在国际舞台上获得了更多的机会和挑战。

DACHANG公司的发展小趣事

在竞争激烈的电子行业中,DACHANG公司始终坚持以品质为核心。公司不断引进先进的生产设备和技术,严格把控产品质量,确保每一件产品都能达到客户的期望。正是这种对品质的执着追求,让DACHANG公司的产品在市场上赢得了良好的口碑,公司也逐渐扩大了自己的市场份额。

博流(Bouffalo Lab)公司的发展小趣事

博流公司的卓越表现引起了业界的广泛关注。2019年,公司荣获了Red Herring Top 100 Asia大奖,这是对其在AIoT/边缘计算SOC芯片研发领域的快速成长和技术实力的高度认可。此外,博流还获得了多项国内外专利和荣誉,证明了公司在行业内的领先地位。

振华(CEC)公司的发展小趣事

为了进一步提升企业的竞争力和市场份额,振华积极实施国际化战略。公司加强与国外企业的合作与交流,积极参与国际市场竞争,通过引进外资、设立海外研发机构等方式,不断拓展海外市场。同时,振华还注重提升产品的国际竞争力,加强与国际标准的对接和认证工作,确保产品能够满足不同国家和地区的市场需求。

问答坊 | AI 解惑

短距离无线数据低功耗传输协议研究

针对短距离无线数据传输设备因高功耗而限制了工业应用这一问题,本文基于Freescale公司的MC13213硬件平台,对其低功耗的数据传输协议进行了研究,采用信标同步机制极大地降低了无线数据传输设备的功耗。   短距离无线数据传输是一种线缆替代技术 ...…

查看全部问答>

请教关于CreateFile的入门级问题

// 打开 驱动 hFlashFile = CreateFile(TEXT(\"COM1:\"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0); 我想请问我如何在com驱动中知道我打开的是COM1,还是其他COM,比如COM2/3 我想在驱动中获得打开了什么,然后我好根据这 ...…

查看全部问答>

IBM 苹果 惠普 选择问题

小弟要入个电脑   以前用的三星的都4年了 要上研究生了想换个用用   就上面三个牌子的  各位仁兄帮我推荐下吧  个人偏向于  IBM和苹果  但是身边没有人用苹果的 所以对苹果的性能不了 ...…

查看全部问答>

【【【急问】】】BDA驱动和USB驱动如何通信??

请问DVB中BDA驱动如何与USB驱动进行通信? 比如我在应用层调频,BDA如何把调频信息通过USB传给硬件?数据又是如何从硬件传输的? 谢谢!…

查看全部问答>

微机原理

1.        8259应用实验(1) 按图7-4所示线路,编写程序,使每次响应外部中断IRQ7时,显示字符“7”,中断10次后,程序退出。 实验参考程序如下: 地址        助记符        ...…

查看全部问答>

关于数据库

        #include \"ca_mergex20.h\"         #pragma comment(lib,\"oleaut32.lib\")         #pragma comment(lib,\"ole32.lib\")     ...…

查看全部问答>

请教中文字库的问题。

    升级原来单片机的手持设备,用ARM7替换。原来字库存放在一片AM29F040 FLASH里。 现在用ARM跑,我觉得字不是很多,字比较少,大概200种。想用程序来写。请教思路。 前提是字模提取的方法不变,只是把存放到FLASH的字库用 程序来替换。 ...…

查看全部问答>

1602

诸位帮个忙我的液晶程序 对第一排第一个写一个字符  但是整个屏幕都显示了!!看看!!…

查看全部问答>