历史上的今天
返回首页

历史上的今天

今天是:2025年02月23日(星期日)

正在发生

2021年02月23日 | 用IAR测试STM8的PWM

2021-02-23 来源:eefocus

IAR测试STM8的PWM

板子上的LED1接在了PD3上,而PD3复用功能是TIM2_CC2,正好可以用来测试PWM功能。当然板上的另外2个LED也可以用,LED2对应PD2/TIM3_CC1,LED3对应PD0/TIM3_CC2。下面通过电位器来调整LED1的亮度。


源程序:


#i nclude

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开启

}

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();

}


推荐阅读

史海拾趣

DAVE Embedded Systems公司的发展小趣事

随着公司的发展,DAVE Embedded Systems不断投入研发力量,致力于技术创新和产品创新。他们基于最新技术(如多核ARM Cortex、PowerPC和X86)设计了一系列高端嵌入式系统模块,这些产品不仅满足了客户对性能的需求,还提供了更好的可靠性和可扩展性。此外,公司还积极开发基于Android和Windows平台的嵌入式系统模块,以满足不同客户的需求。

Cantec Electronic Co Ltd公司的发展小趣事

为了进一步提升自身的竞争力,Cantec Electronic Co Ltd积极寻求与国际知名企业的合作。经过多次洽谈,公司成功与一家国际电子巨头签订了战略合作协议。通过技术共享和市场互通,公司的产品线得到了极大的丰富,同时也打开了国际市场的大门。这一合作不仅提升了公司的品牌知名度,也为公司的长远发展奠定了坚实的基础。

American Technical Ceramics (ATC)公司的发展小趣事

在追求经济效益的同时,Cantec Electronic Co Ltd也积极履行社会责任,坚持绿色发展理念。公司投入大量资金进行环保设施的建设和改造,确保生产过程中的废弃物得到有效处理。同时,公司还积极研发环保型电子产品,推动整个行业的绿色转型。这一举措不仅提升了公司的社会形象,也为公司的可持续发展提供了有力保障。

Acutechnology公司的发展小趣事

Acutechnology公司深知人才是企业发展的核心力量。因此,公司一直注重人才引进和团队建设。公司通过与高校合作、举办招聘会等方式吸引优秀人才加入,并为员工提供完善的培训和晋升机制。同时,公司还注重营造良好的企业文化氛围,激发员工的创新精神和团队合作意识。这些举措为公司的持续发展提供了有力的人才保障。

请注意,上述故事仅为虚构内容,不代表Acutechnology公司的真实发展历程。如需了解该公司的真实情况,建议查阅相关资料或访问其官方网站。

3E SECURITY公司的发展小趣事

为了进一步提升竞争力,3E SECURITY公司开始实施产业链整合战略。公司通过收购、兼并等方式,整合了上下游产业链资源,形成了从研发、生产到销售、服务的完整产业链体系。这一举措不仅降低了公司的运营成本,还提高了产品的质量和服务的效率,为公司的发展注入了新的动力。

Electro-Films Inc Semi-Films Div公司的发展小趣事

近年来,随着全球环保意识的提高,绿色环保和可持续发展成为各行各业关注的焦点。Semi-Films Division 也积极响应这一趋势,将绿色环保理念融入到公司的生产和经营中。公司采用环保的生产工艺和材料,减少了对环境的污染和破坏。同时,公司还积极参与各种环保活动和项目,推动整个行业的绿色发展和可持续发展。这些努力不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

问答坊 | AI 解惑

拆解杂牌汽车两声道功放

这东西正使用中80块淘回来的二手货,上次看一位会员争论汽车功放不是升压的,现发图片上来大家看看! 这东西12V输入通过DC TO DC电路升压为双18V供功放部分使用,看上去功率也有几十W放在房间音量还可以! xinxin2001 跟的贴图参考 ...…

查看全部问答>

650W音响功放高速电源电路设计资料

本帖最后由 paulhyde 于 2014-9-15 04:11 编辑 650W音响功放高速电源电路设计资料  …

查看全部问答>

verilog_300examples

初学者可以模仿例子写些门级电路…

查看全部问答>

coldfire qspi模块

这是关于coldfire 处理器的qspi模块介绍 …

查看全部问答>

有没有用过飞思卡尔 9S08LG的朋友,请教几个问题

刚接触嵌入式驱动设计,公司设计了一个板子,用了 PTD0/LCD0~PTD3/LCD3 作为COM0~COM3 而PTD4/LCD4~PTD15/LCD15 作为S0~S12 我照freescale的文档做了初始化,可是在板子上调试时,没有任何反应, 请高手指点是为什么? #define CONFIG_LCD ...…

查看全部问答>

求助:arm启动代码

在2440init.s里面有怎么一段,我不理解,希望大家给我讲讲: 代码如下: SMRDATA DATA         DCD (0+(B1_BWSCON…

查看全部问答>

关于WINCE6.0的一个忧虑

我以前开发的产品用的都是wince5.0,所以我电脑上装的软件是 :PB5.0+EVC4.0+VC6.0,现在要用wince6.0了,我的问题是:装 VS 2005会不会影响我以前的CE5.0的工程、BSP等,我还能用PB5.0吗?还能用EVC4.0、VC6.0吗?我是否需要将以前的软件卸掉?最 ...…

查看全部问答>

cpld

cpld板子烧坏了是否还能下载,会有什么后果呢?请说详细点…

查看全部问答>

悬殊10分:52的T2计数器问题

我有下面这段程序,send()子程序单独工作的时候是正常的,但是加入到主程序中时就出现问题, 我的主程序是一个频率计。主要问题是频率计的数码管显示不正常,串口能输出数据,但是数据是错误的。 #include unsigned char code dispbit[]={0xfe, ...…

查看全部问答>