打印
[活动专区]

【AC7811开发板试用活动】不装PACK使用方法 + 呼吸灯

[复制链接]
649|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yygdzjs|  楼主 | 2019-11-10 15:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一.不用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);
                               
                               
                          
    }
}
详情见附件

LED暗时.jpg (399.05 KB )

LED暗时.jpg

LED亮时.jpg (430.42 KB )

LED亮时.jpg

AC781X__User_TEMP_LED1.zip

338.65 KB

AC781X__呼吸灯.zip

337.4 KB

使用特权

评论回复

相关帖子

沙发
internally| | 2019-11-11 19:54 | 只看该作者
感谢楼主分享!很厉害

使用特权

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

本版积分规则

8

主题

180

帖子

2

粉丝