一.不用pack使用方法
备注: 工程文件设置过程详细,也可以直接打开此过程.不用设置直接用
方法1. 解压缩 到 没有中文目录下 目录例如:D:\AutoChips_M32_Project\AC781X_Template_User
* 解压文件
* 复制下列
将模板里的 AC781X_Template_User\Libraries\Flash\eFlash 下的文件
复制到 MDK开发软件 ARM/Flash 目录下
AC781x_internal_32KB.FLM
AC781x_internal_64KB.FLM
AC781x_internal_128KB.FLM
AC781x_internal_256KB.FLM
*******************************************
方法2. 新建工程过程
工程路径例如:D:\AutoChips_M32_Project\AC781X_Template_User\ProjectVersion\ProName
*调试用的
将模板里的 AC781X_Template_User\Libraries\Flash\eFlash 下的文件
复制到 MDK开发软件 ARM/Flash 目录下 .
AC781x_internal_32KB.FLM
AC781x_internal_64KB.FLM
AC781x_internal_128KB.FLM
AC781x_internal_256KB.FLM
(二) option 设置
21. Device选择内核 ARM Cortex M3
22. Target 里面
* IROM start="0x08000000" size="0x10000"
* IRAM start="0x20000000" size="0x8000"
* 同时勾选
23. output *选择勾选 Create HEX File
* Select Folder Objects 按钮 选择 HEX 文件的文件夹
24. Listing * Select Folder Listings 按钮 选择 编译工程 文件的文件夹
25. C/C++ * 可以去掉所有勾选(有时编译出错,不同版本有差异) 或 默认.
* 在 include Paths 添加头文件 如下所示
//备注 include Paths 添加的路径
//库驱动路径
..\..\Libraries\Device\Include
..\..\Libraries\Device\Source
..\..\Libraries\Core
..\..\Libraries\Flash\eFlash
..\..\Libraries\Flash\sFlash
..\..\Libraries\ATC_Driver\Drivers\ACMP
..\..\Libraries\ATC_Driver\Drivers\ADC
..\..\Libraries\ATC_Driver\Drivers\CAN
..\..\Libraries\ATC_Driver\Drivers\CRC
..\..\Libraries\ATC_Driver\Drivers\CTU
..\..\Libraries\ATC_Driver\Drivers\DMA
..\..\Libraries\ATC_Driver\Drivers\eFlash
..\..\Libraries\ATC_Driver\Drivers\GPIO
..\..\Libraries\ATC_Driver\Drivers\IIC
..\..\Libraries\ATC_Driver\Drivers\LIN
..\..\Libraries\ATC_Driver\Drivers\PWDT
..\..\Libraries\ATC_Driver\Drivers\PWM
..\..\Libraries\ATC_Driver\Drivers\RTC
..\..\Libraries\ATC_Driver\Drivers\SerialFlash
..\..\Libraries\ATC_Driver\Drivers\SPI
..\..\Libraries\ATC_Driver\Drivers\TIMER
..\..\Libraries\ATC_Driver\Drivers\UART
..\..\Libraries\ATC_Driver\Drivers\WDG
//自己写的路径 USER 及里面文件夹
..\User
26. Debug
--Debug 的 Settings 按键 弹出对话框
--在选项 Flash Download 单击Add 添加按钮就可以发现刚才复制文件.
--我选择是 AC781x_internal_128KB.FLM ,
--点击OK后 关闭 option 设置
(三) 工作文件设置
27 将 工作文件设置好
USER * main.c 主函数
Device * ac78xx_debugout.c 调试出错
* startup_ac78xx.s 启动文件
* ac78xx_ckgen.c
* ac78xx_spm.c
* system_ac78xx.c
ATC_Driver 外围驱动用到加,用不到可加可不加.
例如 LED闪烁
* ac78xx_gpio.c
* ac78xx_dma.c
* ac78xx_uart.c
Core * core_cm3.c 内核
Doc readme.txt 说明文件 可以加也可以不加
详情见附件
二.呼吸灯程序
// 占空比周期计数器 100HZ
// 占空比 5% 递增或递减
// 占空比更新时间计数器
#define SET_DUTY_MIN 5 //最小占空比
#define SET_DUTY_MAX 75 //最大占空比
#define SET_TIME_UPDATA 2400 //占空比更新时间 2400/100us=240ms
unsigned char u8DirectionFlag = 0; //0递增 1递减
unsigned char u8CycleTimeCont = 0; //周期设置100HZ和占空比100等分(100us)
unsigned char u8DutySetValve = 5; //初始化设置值 5
unsigned int u16TimeUpdataCont = 0; //240ms 占空比更新时间
int main(void)
{
InitDebug(); //打印初始化
InitDelay(); //延时函数初始化
GPIO_SetDir(GPIO_PA0, 1);
LED = 0;
while (1)
{
udelay(100); // 100us延时
u8CycleTimeCont++; //周期计数
u16TimeUpdataCont++; //占空比更新时间计数
if(u8CycleTimeCont >= 100) //100HZ周期计数复位
{
u8CycleTimeCont = 0; //周期计数器归零(10ms)
LED = 0; // 点亮LED
}
if(u8CycleTimeCont >= u8DutySetValve) //100HZ周期内的状态变化(与熄灭)
{
LED = 1; // 熄灭LED
}
if(u16TimeUpdataCont >= SET_TIME_UPDATA) //占空比更新时间计数
{
u16TimeUpdataCont = 0; //占空比更新时间计数器归零
}
//--占空比设置值方向控制----
if((u8DirectionFlag == 0) && (u16TimeUpdataCont ==0)) //占空比增加
{
if(u8DutySetValve < SET_DUTY_MAX)
{
u8DutySetValve += 5; //占空比设置值加
}
else
{
u8DirectionFlag = 1; // 占空比设置值减方向
}
}
else if((u8DirectionFlag == 1) && (u16TimeUpdataCont ==0)) //占空比减小
{
if(u8DutySetValve > SET_DUTY_MIN)
{
u8DutySetValve -= 5; //占空比设置值减
}
else
{
u8DirectionFlag = 0; // 占空比设置值加方向
}
}
// LED = !LED;
// mdelay(500);
}
}
详情见附件
|