原创 PIC第三方编译软件CCS PCWH使用心得(2)

2010-4-4 15:45 1965 1 2 分类: MCU/ 嵌入式
  CCS PCWH也是很好用的,在刚接触PIC的时候就一直使用它了,方便在于编译器把很多硬件的东西都写成了函数,便于调用,降低了开发者对硬件熟悉程度的要求,正是这样也给调试软件找BUG带来了一定的难度。  
  1)比如说用timer1定时方式产生占空比50%的方波吧,以前PIC16,PIC18系列对定时器配置程序简单的两句话就完成
 setup_timer1(T1_INTERNAL|T1_DIV_BY_8); //sets the internal clock as source
    set_timer1(0x8000);
    换成PIC30做开发了,认为移植程序起来很方便,没想却在定时器这儿出了问题,按上面的程序无论怎么改变set_timer1()函数调用的参数,都无法改变定时值,出来都是同一方波,得不到上述的结果。对PIC30的定时器硬件分析发现PIC30的定时器中断方式与PIC18等有所不同,PIC18是溢出中断,而PIC30是比较中断,这就是症结所在。继续研读CCS帮助手册,将程序改为以下后OK:
    setup_timer1(TMR_INTERNAL | TMR_DIV_BY_256 , 0x8000);
    set_timer1(0);
    看上去很相试的程序,意思却不一样。
  分析:
  setup_timer1(T1_INTERNAL|T1_DIV_BY_8)若用在PIC30使用,实质上只对定时器进行了配置,恰恰没有对定时器的RP1寄存器设置,默认为0xFFFF;而set_timer1(0x8000)前者是设定初始值,而后者在PIC30实质是复位定时器。
    2)比如说用timer2和timer3组成32BIT定时器使用,有了上述经验,做起来便容易了。
   // timer 2,3 initialization
   setup_timer2(TMR_INTERNAL | TMR_DIV_BY_256 | TMR_32_BIT, 0x00112233);
   set_timer23(0);
   心想这样配置应该没问题了,timer2也设置成32bit了,也对RP寄存器设置了值,但运行程序得到的结果并不是想要的。最终没法将LIST文件掉出来分析才发现setup_timer2(TMR_INTERNAL | TMR_DIV_BY_256 | TMR_32_BIT, 0x00112233)在配置时只针对timer2进行了设置,对于timer3什么也没做,而0x00112233的高16bit也就没有写入timer3的RP寄存器,我纳闷32BIT的数写到16BIT的寄存器,编译器怎么不报错呢。最终程序改为了:
   // timer 2,3 initialization
   setup_timer2(TMR_INTERNAL | TMR_DIV_BY_256 | TMR_32_BIT, 0x2233);
  setup_timer3(TMR_INTERNAL, 0x0011);
   set_timer23(0);
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

dwwzl 2010-4-6 09:12

学习了,支持
相关推荐阅读
用户251454 2010-04-04 16:19
PIC第三方编译软件CCS PCWH使用心得(3)
  常量数组调用方法:CCS PCWH环境下对常量数组进行操作与其他C语言有所不同,对于单一数组操作也很简单不会遇到太多问题,但如果要作为参量来调用麻烦就来了,不注意还真不知道怎么使用。我的一个友人在...
用户251454 2010-04-04 15:41
IAR C编译环境下数据转换的新方法
在进行C语言程序设计,常常需要进行数据转换,例如将4个8BIT的数据组合成1个32BIT,或者将32BIT的数据拆分成4个8BIT的数据。在汇编语言这些都很简单,在C语言中常用到的方法是移位,加,乘等...
用户251454 2010-03-28 19:13
MSP430FG4619FLASH读写问题
在IAR C语言编译环境中,发现MSP430FG4619的FLASH的读写方法已不能象F449那样读写了,对于低于0XFFFF的地址空间的操作两者是一样的,但想对超过0XFFFF的FLASH空间该如何...
用户251454 2010-03-28 02:21
我的博客我来做主
       经过多日在网上选择,终于选择在EDNCHINA安了家,值得庆贺!      我热爱设计这里是适合我的。...
用户251454 2010-03-28 00:55
PIC第三方编译软件CCS PCWH使用心得(1)
  对于PIC单片机的第三方编译软件CCS PCWH,估计在国内使用的很少吧!PIC的技术支持对这个编译软件也不熟悉吧,我一直在这个环境下做开发。做PIC的程序都不怎么用仿真了,这个编译器也可以嵌入到...
我要评论
1
1
关闭 站长推荐上一条 /3 下一条