-
66666
-
精神支持芯币共享的,大赞免费共享的。
-
是的,我用的是内部8MHZ的晶体振荡器。已经找出原因,是别的问题,不是F149外围电路问题,感谢支持!
-
原帖由 ccstc 于 2012-9-23 14:56 发表 [url=https://bbs.eeworld.com.cn/redirect.php?goto=findpost&pid=1380603&ptid=348451][/url]
楼主
楼上
XT2使用的是8MHZ内部高速晶振不是么?F149内部自带高速晶振。
-
电路功能:过149A0通道采样处理,显示在TFT液晶屏上。 复位端测试是高电平3.1V左右,应该不是这问题。
-
悬赏只能是1--2枚芯币,汗·····多一些都不行?
-
哎···估计没有的撒····你还是把例程对照datasheet慢慢理解比较好。
-
额·····奇了怪了,原来改过的程序没出波形,今天按照你的方法改了一下能出波形,于是试着改回原来不出波形的程序,奇了怪了,居然出了波形了······郁闷····:puzzle:
-
你在那里打样过没?我记得好像是0.6元/平方厘米
-
如果能写出程序,能否给出,分享分享??
-
1.配置好TA0.0的相关设置,包括CCR0 CCTL CTL 打开中断等等····
2.设置P1.1为输出 第二功能
3.进入休眠时切勿进入LPM3/4(针对时钟是SMCLK来说),LPM3/4是把SMCLK也关闭了的。
4.认真仔细检查。
-
TA0.x是由CCRx决定计数 CCTLx控制
-
这个我记得用户指南里面有提到过,说是当管脚用作IO口时,如果悬空,在没有输入输出的情况下,为了低功耗考虑,此时管脚上的值无关紧要。也就是说用作输入时如果没有输入,即管脚悬空,读入的值1.x V是无效的,当给输入时读入的既是输入值,那个1.x V不影响输入。经测试验证,确实如此。
-
嗯,听你这么一说,我重新看了一下芯片资料,貌似可以实现,也就是说TA0.0、TA0.1、TA1.0、TA1.1、TA1.2一共五路输出,当两个计数器分别计数到CCRx的时候 使用模式4,当达到CCRx时产生中断并翻转输出电平,进入中断给CCRx赋值,以便下次产生中断。但是你的程序我试过,没有PWM输出(按你程序所指,PWM应该从P1.1或P1.5、P1.2、P2.0或P2.3、P2.1或P2.2、P2.4或P2.5这五个管脚输出,xx或xx输出的波形一样,不知理解的对不对。)另外你把LPM0注释掉了,程序打开总中断后就结束了 这样还能产生中断??把CCRx的初值注释掉了,这样计数器怎么判断计数到何值产生中断?? 带着疑问,把你的程序改了一改,结果还是没显示······我把你程序中DCO_init(1);换成BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ; 其它不变的情况下运行没有结果······································求指教········膜拜·····
-
哎····我用3V的纽扣电池给430供电控制小车,不到10分钟就挂了····
-
漂过····也是遇到问题了百度来这的····
-
细节我也不过于深究,给不了你为什么的原因,但PWM输出是由定时器TA0或者TA1控制,你在G2553芯片手册上可以找到TA0.x和TA1.x的的管脚,PWM周期由TAx的CCR0控制,也就是在CCR0中你装入的必须是PWM周期,例如TA0.0有管脚P1.1和P1.5,TA0.1有P1.2和P2.6,因此,如果用TA0控制PWM,输出的PWM只能由P1.2或者P2.6输出,定义其它管脚输出无效。至于P1SEL的设置是告诉系统 P1某个管脚使用的是它的第二功能,定义了P1SEL.2则表示P1.2这个管脚使用的是它的第二功能,可以是PWM输出,也可以是其它。
不知道这样理解对不对,请高手指教。
-
G2553只能产生一路PWM波 这句是错的,应该说G2553通过TA0只能产生一路PWM波,但是通过TA1可以产生两路,当然,用TA0和TA1一共同时可以产生三路PWM波····下面这个程序是一个用TA1产生两路PWM的简单例子,由P2.1和P2.4分别输出:
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
//时钟设置为1MHz mclk=smclk=dco
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
BCSCTL3 |= LFXT1S_2;
BCSCTL2 |=SELM_1 + DIVM_0;
//初始化TA0为两通道pwm,smclk,由P2.1和P2.4输出
P2DIR |= (BIT1+BIT4);
P2SEL |= (BIT1+BIT4);
TA1CCR0 = 2000; //周期为2000个时钟周期
TA1CCTL1 = OUTMOD_7;
TA1CCTL2 = OUTMOD_7;
TA1CCR1 = 500; //占空比500/2000=0.25
TA1CCR2 = 1000; //占空比1000/2000=0.5
TA1CTL = TASSEL_2 + MC_1;
_BIS_SR(LPM0_bits); //进入LPM3低功耗模式
}
-
嗯,确实只能由CCR0设定周期,看到图12-13输出模式4所示,我以为可以通过CCR1设定周期,就用TA1.1作为周期设定值,结果输出不对,这就说明PWM周期只能由CCR0设定了吧····暂且这么理解了。
-
TASSEL_1是FACLK吧??