查看: 3318|回复: 5

【ATmega168 Xplained Mini 试用系列】No.2开发环境再折腾和USART

[复制链接]
  • TA的每日心情
    慵懒
    2019-4-25 12:20
  • 签到天数: 251 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2014-4-24 18:52:16 | 显示全部楼层 |阅读模式
    分享到:
    AVR的开发环境比较多
    看了几个,后来发现支持这块ATmega168 Xplained Mini板载mEDBG调试器的环境只有AS
    悲催了,看来目前只能用官方的编译器了
    官方还有一个体积更小的环境CodeVisionAVR
    稍微玩了一下,感觉还是比较不错的
    不过最新的版本v3.10似乎没有和谐版,有很多坑爹的限制
    最新的破解版本也只到2.5的样子
    期望毛鬼子的crack赶紧出来呀
    下面新手第一次使用,聊聊这俩货的搭配
    ------------------------------------------------割割-------------------------------------------------------

    安装完CodeVisionAVR v3.10后,会和AS关联起来
    1.png
    方框内三个图标,从左往右依次是:CVAVR工程创建向导、Arduino更新和LCD库操作
    这里当然CVAVR工程创建向导咯

    2.png
    果断选择第一个
    3.png
    弹出向导对话框,填好chip和时钟
    其实到这里大家应该都明白了,其实就是一个图形配置界面,吼吼
    来玩玩USART和定时器,定时一段时间发送数据
    先配置定时器

    4.png
    试用版,不给你配置定时器
    看看USART

    5.png
    试用版,USART你可以初始化,但是开中断,别想。
    CodeVisionAVRv3.10把屌丝玩AS6.2的路堵得死死的
    不过没问题,CodeVisionAVR V2.05.0破解版来玩,哈哈。
    不过先完成工程的建立
    CodeVisionAVRv3.10中不作任何配置,完全保存

    6.png
    就是这个按钮,Generate programsave and exit

    7.png
    先保存c文件

    8.png
    保存成AS工程

    9.png
    保存CVAVR工程文件

    10.png
    这个时候AS会提示是否载入一个新的solution,这个就是刚才通过CVAVR创建的工程
    果断点“是”。

    11.png
    要求保存一个后缀为atsln的文件,大约是某种关联文件吧,个人猜测。

    12.png
    提示有个错误,貌似和字体有关,估计没有什么问题。

    13.png
    很快一个默认系统配置的工程就建好了,注意,这个是通过CVAVR v3.10创建的
    限制诸多,到了这一步,请出CVAVR v2.05

    14.png
    开始配置初始化程序

    15.png
    填好chipclock,和v3.10版本界面不太一样
    配置timer

    16.png
    配置USART,并生成代码

    17.png
    吼吼,把代码copy进刚才建立好的AS工程中,并做小小的修改,就能编译下载咯。
    看看串口打印的信息
    18.png
    打完收工。
    贴个代码出来看看
    1. /*******************************************************
    2. This program was created by the
    3. CodeWizardAVR V3.10 Evaluation
    4. Automatic Program Generator
    5. ?Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
    6. http://www.hpinfotech.com

    7. Project :
    8. Version :
    9. Date    : 2013-4-23
    10. Author  :
    11. Company :
    12. Comments:


    13. Chip type               : ATmega168PA
    14. Program type            : Application
    15. AVR Core Clock frequency: 16.000000 MHz
    16. Memory model            : Small
    17. External RAM size       : 0
    18. Data Stack size         : 256
    19. *******************************************************/

    20. #include <mega168a.h>

    21. // Standard Input/Output functions
    22. #include <stdio.h>


    23. int conter;
    24. // Timer 0 overflow interrupt service routine
    25. interrupt [TIM0_OVF] void timer0_ovf_isr(void)
    26. {
    27.         conter++;

    28. }

    29. // Declare your global variables here

    30. void main(void)
    31. {
    32.         // Declare your local variables here

    33.         // Crystal Oscillator division factor: 1
    34.         #pragma optsize-
    35.         CLKPR=0x80;
    36.         CLKPR=0x00;
    37.         #ifdef _OPTIMIZE_SIZE_
    38.         #pragma optsize+
    39.         #endif

    40.         // Input/Output Ports initialization
    41.         // Port B initialization
    42.         // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    43.         // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    44.         PORTB=0x00;
    45.         DDRB=0x00;

    46.         // Port C initialization
    47.         // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    48.         // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    49.         PORTC=0x00;
    50.         DDRC=0x00;

    51.         // Port D initialization
    52.         // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    53.         // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    54.         PORTD=0x00;
    55.         DDRD=0x00;

    56.         // Timer/Counter 0 initialization
    57.         // Clock source: System Clock
    58.         // Clock value: 15.625 kHz
    59.         // Mode: Normal top=0xFF
    60.         // OC0A output: Disconnected
    61.         // OC0B output: Disconnected
    62.         TCCR0A=0x00;
    63.         TCCR0B=0x05;
    64.         TCNT0=0x00;
    65.         OCR0A=0x00;
    66.         OCR0B=0x00;

    67.         // Timer/Counter 1 initialization
    68.         // Clock source: System Clock
    69.         // Clock value: Timer1 Stopped
    70.         // Mode: Normal top=0xFFFF
    71.         // OC1A output: Discon.
    72.         // OC1B output: Discon.
    73.         // Noise Canceler: Off
    74.         // Input Capture on Falling Edge
    75.         // Timer1 Overflow Interrupt: Off
    76.         // Input Capture Interrupt: Off
    77.         // Compare A Match Interrupt: Off
    78.         // Compare B Match Interrupt: Off
    79.         TCCR1A=0x00;
    80.         TCCR1B=0x00;
    81.         TCNT1H=0x00;
    82.         TCNT1L=0x00;
    83.         ICR1H=0x00;
    84.         ICR1L=0x00;
    85.         OCR1AH=0x00;
    86.         OCR1AL=0x00;
    87.         OCR1BH=0x00;
    88.         OCR1BL=0x00;

    89.         // Timer/Counter 2 initialization
    90.         // Clock source: System Clock
    91.         // Clock value: Timer2 Stopped
    92.         // Mode: Normal top=0xFF
    93.         // OC2A output: Disconnected
    94.         // OC2B output: Disconnected
    95.         ASSR=0x00;
    96.         TCCR2A=0x00;
    97.         TCCR2B=0x00;
    98.         TCNT2=0x00;
    99.         OCR2A=0x00;
    100.         OCR2B=0x00;

    101.         // External Interrupt(s) initialization
    102.         // INT0: Off
    103.         // INT1: Off
    104.         // Interrupt on any change on pins PCINT0-7: Off
    105.         // Interrupt on any change on pins PCINT8-14: Off
    106.         // Interrupt on any change on pins PCINT16-23: Off
    107.         EICRA=0x00;
    108.         EIMSK=0x00;
    109.         PCICR=0x00;

    110.         // Timer/Counter 0 Interrupt(s) initialization
    111.         TIMSK0=0x01;

    112.         // Timer/Counter 1 Interrupt(s) initialization
    113.         TIMSK1=0x00;

    114.         // Timer/Counter 2 Interrupt(s) initialization
    115.         TIMSK2=0x00;

    116.         // USART initialization
    117.         // Communication Parameters: 8 Data, 1 Stop, No Parity
    118.         // USART Receiver: Off
    119.         // USART Transmitter: On
    120.         // USART0 Mode: Asynchronous
    121.         // USART Baud Rate: 9600
    122.         UCSR0A=0x00;
    123.         UCSR0B=0x08;
    124.         UCSR0C=0x06;
    125.         UBRR0H=0x00;
    126.         UBRR0L=0x67;

    127.         // Analog Comparator initialization
    128.         // Analog Comparator: Off
    129.         // Analog Comparator Input Capture by Timer/Counter 1: Off
    130.         ACSR=0x80;
    131.         ADCSRB=0x00;
    132.         DIDR1=0x00;

    133.         // ADC initialization
    134.         // ADC disabled
    135.         ADCSRA=0x00;

    136.         // SPI initialization
    137.         // SPI disabled
    138.         SPCR=0x00;

    139.         // TWI initialization
    140.         // TWI disabled
    141.         TWCR=0x00;

    142.         // Global enable interrupts
    143.         #asm("sei")


    144.         while (1)
    145.         {
    146.                 if(conter == 100)
    147.                 {   printf("===================================\r\n");
    148.                         printf("     ATMEL AVR Xplained Mini     \r\n");
    149.                         printf("        Hello,EEBoard!!!!        \r\n");
    150.                         printf("==================================\r\n");
    151.                         conter = 0;
    152.                 }

    153.         }
    154. }
    复制代码
    ---------------------------------又割割----------------------------------
    CVAVRv3.10创建工程,CVAVR v2.05初始化芯片,的确很方便,但是有4k代码的限制。今天点5110的时候,提示试用版限制。
    现在ASF还不是太会用,看来还有很长一段路程要走啊。

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-8-29 20:40
  • 签到天数: 1341 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2014-4-24 20:48:34 | 显示全部楼层
    不错 好好学习下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-7-16 09:10
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2014-4-25 09:13:19 | 显示全部楼层
    帖子很有风格,看到你很认真的学习(给赞),也看到你的吐槽了~~~期待下次更精彩!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-25 12:20
  • 签到天数: 251 天

    连续签到: 1 天

    [LV.8]以坛为家I

     楼主| 发表于 2014-4-25 13:52:50 | 显示全部楼层
    wangku001wei 发表于 2014-4-24 20:48
    不错 好好学习下!

    一起一起
    ATMEL的东西还是很有嚼头的
    AVR第一次玩,慢慢捯饬。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-25 12:20
  • 签到天数: 251 天

    连续签到: 1 天

    [LV.8]以坛为家I

     楼主| 发表于 2014-4-25 13:54:21 | 显示全部楼层
    GY@艳 发表于 2014-4-25 09:13
    帖子很有风格,看到你很认真的学习(给赞),也看到你的吐槽了~~~期待下次更精彩! ...

    呵呵,谢谢版版。
    现在都是玩些基本的东西,高手似乎都不屑一看啊
    等玩熟点了,再搞点流行的小玩意儿。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-7-16 09:10
  • 签到天数: 361 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2014-4-25 13:56:08 | 显示全部楼层
    ljj3166 发表于 2014-4-25 13:54
    呵呵,谢谢版版。
    现在都是玩些基本的东西,高手似乎都不屑一看啊
    等玩熟点了,再搞点流行的小玩意儿。 ...

    高手们不是不屑啦!他们是觉着你应该改自己一步一步走向高手,你说对吧!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 13:14 , Processed in 0.167695 second(s), 27 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.