打印
[Atmel]

跑一下XMEGA-B1程序(18)CodeVisionAVR之一

[复制链接]
1032|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CodeVisionAVR是Studio7的一个扩展功能,扩展功能怎么打开在前一个贴子有述:

Stuio7的扩展小部件

我觉得相见恨晚,这个是开发AVR,及Xmega的利器。

下载后安装,我默认安装在C盘,其实装D盘也可。
然后点击运行


我想首先点灯吧:

在file下选new然后建立工程:

出现一个弹出对话框,我当然选XMEGA,确定


然后选择芯片型号

单击左边的系统时钟配置
看一下是选择的内部RC2MHz

然后点左边的PORT
因为本开发板是在PORTB的4-7所以把4-7都选择输出



然后点击上边快捷菜单的有个C标志的图标,产生代码

然后再点击刚才旁边的保存图标:

保存到,自已能记信的目录里边,然后要三个文件名

一个是C文件名,一个是工程文件名,一个是CodeVisionAVR能识别的文件名,我都用一个名first。

然后在Studio7中打开这个工程。选择打开,这时到指定的目录里边就能看到Studio能识别的工程。

然后编译,出现了一个奇怪的弹出窗口,显示编译信息。然后我点下载,可以下载。



但主函数没有用户代码,我查了下它的PORT.c文件,里边是直接寄存器操作,那就直接OUT,就可以了。

程序如下,其实我就添了一句话:

PORTB.OUT=0x00;

程序如下:
/*******************************************************
This program was created by the CodeWizardAVR V3.24
Automatic Program Generator
?Copyright 1998-2015 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 2016/1/23
Author  :
Company :
Comments:


Chip type               : ATxmega128B1
Program type            : Application
AVR Core Clock frequency: 2.000000 MHz
Memory model            : Small
Data Stack size         : 2048
*******************************************************/

// I/O Registers definitions
#include <io.h>

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

// Clock System initialization function
#include "clock_init.h"

// I/O Ports initialization function
#include "ports_init.h"

// Declare your global variables here

void main(void)
{
// Declare your local variables here
unsigned char n;

// Interrupt system initialization
// Optimize for speed
#pragma optsize-
// Make sure the interrupts are disabled
#asm("cli")
// Low level interrupt: Off
// Round-robin scheduling for low level interrupt: Off
// Medium level interrupt: Off
// High level interrupt: Off
// The interrupt vectors will be placed at the start of the Application FLASH section
n=(PMIC.CTRL & (~(PMIC_RREN_bm | PMIC_IVSEL_bm | PMIC_HILVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_LOLVLEN_bm)));
CCP=CCP_IOREG_gc;
PMIC.CTRL=n;
// Set the default priority for round-robin scheduling
PMIC.INTPRI=0x00;
// Restore optimization for size if needed
#pragma optsize_default

// System clocks initialization
system_clocks_init();

// Ports initialization
ports_init();

// Virtual Ports initialization
vports_init();

while (1)
      {
      // Place your code here
          PORTB.OUT=0x00;

      }
}




1601236.jpg (106.2 KB )

1601236.jpg

相关帖子

沙发
xlhtracy| | 2016-1-25 14:30 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6955

帖子

67

粉丝