一;打开芯片手册简单看了下,主要两种形式:1,周期类型,就是固定输出一定频率的方波。2,调节占空比的波形。
二;开始建立工程,注释掉的是周期类型,已经实际编译测试过了。剩下的是调节占空比的。
#include "extern.h"
//// 1£º·ÖÖÜÆÚºÍÕ¼¿Õ±ÈÁ½ÖÖ¡£ÏÈ¿´ÖÜÆڵݸÀý¡£
/*
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/2 // SYSCLK=IHRC/2
tm2ct = 0x0; ////¼ÆÊýÆ÷ÇåÁã
tm2b = 0xff; ////ÉÏÏ޼ĴæÆ÷É趨ֵ ֵԽСÖÜÆÚԽС¡¢ÆµÂÊÔ½¿ì ƵÂʼÆËã²ÎÕÕ5.8.1
tm2s = 0b0_00_00001; ////·ÖƵÆ÷ÉèÖà S1 = 0 S2 = 1
tm2c = 0b0001_11_0_0; ////µÚ3λºÍµÚ2λ¾ö¶¨01=PB2,10=PA3,11=PB4Êä³ö
while (1)
{
nop;
// ...
// wdreset;
}
}*/
//// 2£º·ÖÖÜÆÚºÍÕ¼¿Õ±ÈÁ½ÖÖ¡£ÏÈ¿´ÖÜÆڵݸÀý¡£
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/2 // SYSCLK=IHRC/2
tm2ct = 0x0; ////¼ÆÊýÆ÷ÇåÁã
tm2b = 0x3f; ////ÉÏÏ޼ĴæÆ÷É趨ֵ ֵԽС¸ßµçƽµÄÕ¼¿Õ±ÈԽС
tm2s = 0b0_00_00001; ////·ÖƵÆ÷ÉèÖà S1 = 0 S2 = 1 ƵÂʼÆËã²ÎÕÕ5.8.2
tm2c = 0b0001_11_1_0; ////µÚ3λºÍµÚ2λ¾ö¶¨01=PB2,10=PA3,11=PB4Êä³ö
while (1)
{
nop;
// ...
// wdreset;
}
}
void Interrupt (void)
{
pushaf;
if (Intrq.T16)
{ // T16 Trig
// User can add code
Intrq.T16 = 0;
//...
}
popaf;
}
三;重点补充一下,数据手册没说输出口设置一一对应关系,我自己拿示波器一个一个设置出来了,程序注释里有,tm2c = 0b0001_11_0_0; ////第3位和第2位决定01=PB2,10=PA3,11=PB4输出 供参考。
谢谢!下期调试ADC吧,正好有客户要用ADC功能。
|
@buermentu :我用的型号是PMS150C-SOP8
@buermentu :楼主你好,周期类型(固定输出一定频率的方波)这段程序我正好需要,能否把整个完整的工程文件也共享出来啊,我懒得再去熟悉这款单片机了,非常感谢!
不好意思,从编译器copy出来的代码注释全部显示乱码。下次我会注意。这些都比较简单,后期复杂一点的我把工程文件COPY上去,另外有需要任何应广资料或技术支持的,私聊我,能帮忙的我尽力,大家一起学习这款单片机。