应广Mini-C语言开发PMS150G(下) 使用$配置寄存器. /*****************timer2PWM模式********************/ /*****************ID:共同学习stm8******************/ /*******************2023929************************/ /*********************v0.1*************************/ // pms150g // ______ ______ // 5v-|1-vdd \_/ gnd-8|-gnd // -|2-pa7 pa0-7|- // -|3-pa6 pa4-6|-anjian // -|4-pa5_____pa3-5|-led /**************************************************/ #include "extern.h" anjian bit pa.4; /**************************************************/ void FPPA0(void) { .ADJUST_IC SYSCLK=IHRC/4 //SYSCLK=IHRC/4 $ anjian in,ph; //输入,开上拉电阻 $ tm2c SYSCLK,PA3,PWM; //timer2控制寄存器 tm2ct =0; //timer2计数器 tm2b =100; //timer2上限寄存器 $ tm2s 8BIT,/1,/2; //timer2分频寄存器 /**************************************************/ byte a1; a1 =100; while (1) { if(anjian ==0){a1++;} //按键按下灯一直亮 tm2b =a1; .delay 40000; //延时半秒 } } /**************************************************/ 代码解析: $ anjian in,ph; //输入,开上拉电阻 $ tm2c SYSCLK,PA3,PWM; //timer2控制寄存器 tm2ct =0; //timer2计数器 tm2b =100; //timer2上限寄存器 $ tm2s 8BIT,/1,/2; //timer2分频寄存器 使用$配置寄存器是应广单片机一大特点,最主要是直观,跟我来看一下$是怎么使用的.打开方案总管,打开左边栏找到.inc文件打开.再找到pms150g说明书,先看想用pwm都需要配置什么寄存器. 第一个: $ tm2c SYSCLK,PA3,PWM; timer2控制寄存器,tm2c的7-4位选择时钟频率源,再打开inc文件找到tm2c $ 7 ~ 4 : STOP, SYSCLK, IHRC, X, ILRC, GPCRS, X, X,直接想选哪个就复制那个就可以了,不配置的可以写X或者不写,大大的避免了出错和混乱. tm2ct, timer2计数器.这个不停的加数脉冲来一个加1. 不停的和tm2b去比较相等就翻转. tm2b,timer2上限寄存器.只要修改这个寄存器的值就能修改pwm脉宽了. $ tm2s 8BIT,/1,/2; timer2分频寄存器每来一个脉冲计数器就加一. byte a1; Mini-C的数据类型byte八位,word十六位,eword二十四位,dword三十二位. 别的数据类型不支持,随意在任何位置都可以申请变量无任何限制. 本程序功能按键按下亮度增加.
|