machao 发表于 2004-12-5 08:17:32

建议使用ICCAVR或CVAVR的向导生成代码功能

关于使用向导

cma 发表于 2004-1-17 20:41



在ICCAVR和CVAVR中,都有程序生成的向导功能。应该学会很好的利用这些向导:

1.向导生成的程序,是一个非常好的学习程序,你应该仔细研究、理解和掌握其中的设计思想和方法,这些在一般的书中是没有的。如CVAVR的向导程序生成的UART的用户程序就是非常好的例子。它采用中断方式的发送和接收,给出了中断服务,GETCHAR()、SENDCHAR()底层的服务函数,在程序中有汇编和C的混合应用。你如果真正读懂了这段代码,不仅你的软件设计水平会上一个层次,而且对AVR的中断控制以及相应的硬件也了解的更透彻。一般的书上都只给一个采用轮循方式的UART程序例子,但在实用中,中断方式更为有效。仅这段程序,我认为就有必要化上一个晚上去逐句逐字的认真研究和体会。

2.利用向导生成的程序,作为你的程序的参考,可以提高和加快你的程序的编写,尤其是初始化程序的编写。AVR的寄存器比较多,设置参数也多,如果自己计算和编写,总会出现问题的。利用程序生成向导,可以立刻生成正确的初始化程序代码,你只要根据需要修改,就可以拼到你的程序中了。我做的所有项目,初始化部分肯定是利用向导生成的程序,再经过修改后完成的。

3.程序向导当然不能生成用户的主要程序,但利用程序向导可以对AVR的各种外围功能和使用有更加深刻的了解。另外,对你所使用的开发平台中所提供的程序示例也应该认真的学习,比如BASCOM-AVR中的程序示例就有几十个。这些程序示例比一般普通的教科书上的例子都要实用。



(首次发表:21ic bbs)

wuzhe213 发表于 2005-2-25 17:24:15

可不可以给我讲讲具体如何使用ICC的向导?

ilan2003 发表于 2005-2-25 18:06:42

有时会产生错误的代码

godzhangyu 发表于 2005-2-25 21:24:18

ICC的向导有时会产生错误代码,使用时得根据datasheet修改一下。不同版本的ICC,向导产生的错误代码不同。

icebomb 发表于 2005-2-26 09:15:51

用gcc可以试一下atmanavr的。

bany 发表于 2005-2-26 11:43:57

ICC的向导代码不可靠。建议复核一下。

当然,瑕不掩瑜。确实很方便,也很容易。

armok 发表于 2005-2-26 12:34:11

是啊。很多人反映,ICCAVR 生成代码可能有问题。

bany 发表于 2005-2-27 10:39:30

不能因噎废食,但是要时刻保持警惕,防止阶级敌人的反扑,防止封建势力的死灰复燃,防止资本主义的腐蚀渗透。抓革_命、促生产、促战备。为革_命,保护视力,眼保健操开始……

lb0021 发表于 2005-3-4 17:24:12

起码我知道ICCAVR产生的WDT与PWM有问题。不过只要有自己知道原理,参考代码还是大有帮助的

avrboy 发表于 2005-4-11 10:35:19

"防止阶级敌人的反扑,防止封建势力的死灰复燃,防止资本主义的腐蚀渗透。抓革_命、促生产、促战备。"黨員呼?

machao 发表于 2005-4-11 14:52:33

avrboy 單片小子,请不要在此灌水。谢谢。

xiao_2873320 发表于 2005-4-11 18:41:26

马老师可不可以给我们讲讲具体如何使用ICC和CV向导? 在课堂上讲讲也可以~~!

谢谢!

machao 发表于 2005-4-11 22:50:37

按装软件,多点几下鼠标,对照器件手册,先自己体会和思考。



    先从简单的I/O寄存器初始化开始。

bucker 发表于 2005-4-18 20:37:40

马老师:我在使用ICC6.31a的向导,生成一个定时器2的CTC模式定时产生1mS定时中断的程序时,对于自动生成的结果有些疑惑。



http://cache.amobbs.com/bbs_upload782111/files_1/armok0146105.jpg



首先是其定时精度怎么只能达到0.4%(1.004mS),此外,按本人的理解,OCR2的值应该是0xF9才合理,应该是可以产生准确的1.000mS。
-----此内容被bucker于2005-04-18,20:40:01编辑过

machao 发表于 2005-4-18 21:32:00

这可能是ICCAVR中的一个小的BUG。实际上按0XFA计算是1.0004ms(实际是251次计数),没有错。但合理的应设置0XF9。



   一般应参考它给出的数值,自己再计算一下做修改。

avrboy 发表于 2005-4-19 13:41:10

其實還要加上中斷及反回所用的時間才更精確!!

lingyige 发表于 2005-5-26 23:39:43

我刚开始的时候不会用向导生成

就直接写的

写的一个中断程序

结果怎么也不通

后来改用向导写了

程序一模一样

只是多了向导生成的一些定义时钟的句子(我的程序中没用到时钟)

一下子就通了

后来我把关于时钟的程序给删了

又不通了

我想不通为什么

好像我的同伴也遇到过这种问题

machao 发表于 2005-5-27 13:45:17

能否把两段初始化的程序贴上来看看。

wcongling 发表于 2005-10-13 11:57:29

CVAVR指的是GCCAVR吗?

如果不是 那GCCAVR中有向导功能吗?

JAMESKING 发表于 2006-3-30 01:59:40

呵呵呵确实CVAVR(就是CodevisionAVR)的代码向导功能很强大,而且错误很少。

kinsey 发表于 2006-4-5 17:24:28

我一直在用CVAVR的向导功能。觉得很不错的。

fengye2009 发表于 2012-7-23 16:15:01

ICCAVR的向导很清晰,特别是定时器设置特别灵活,可以是用户任意输入数字,CVAVR编译器带很多器件的驱动,比如DS1302、DS18B20、1602液晶屏驱动。
经常是用ICCAVR生成初始化程序,复制到ACAVR中应用。

xiaohunnanzi 发表于 2012-9-10 21:44:45

定时器向导怎么用啊?有些东西设置不了,比如TCCR0打三个问号。。。

zhuhaioudi 发表于 2012-10-14 09:51:51

受教。{:smile:}

lu976046395 发表于 2013-8-7 10:34:07

受教,不知道有没有那种比较详细的介绍iccavr中文使用手册

panhai0101 发表于 2014-12-3 11:12:28

ICCAVR生成的有问题。都得再对照手册检查才放心
页: [1]
查看完整版本: 建议使用ICCAVR或CVAVR的向导生成代码功能