12
返回列表 发新帖
楼主: harvardx

[原创] 【KE02Z】基于KE02Z的三相交流功率,频率表的设计

[复制链接]
  • TA的每日心情
    开心
    2016-11-29 08:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    14

    帖子

    0

    注册会员

    Rank: 2

    积分
    58
    最后登录
    1970-1-1
    发表于 2016-8-25 12:52:01 | 显示全部楼层
    项目好,赞一个!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-24 18:51
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    17

    主题

    565

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2004
    最后登录
    2021-3-10
     楼主| 发表于 2016-8-25 12:52:16 | 显示全部楼层
    1. /*---------------------------------------------------------------------------------------------------------*/
    2. /* MAIN function                                                                                           */
    3. /*---------------------------------------------------------------------------------------------------------*/
    4. int main(void)
    5. {
    6.        
    7.     /** 1-BSP系统初始化 */
    8.     SYS_Init();
    9.     GPIO_Init();
    10.        

    11.     /** 2-应用程序系统初始化*/

    12.         /* 关全局中断 便于初始化单片机 */
    13.         cli();
    14.     /* */

    15.         /* 定时器初始化 */
    16.     TMR0_Init        () ;
    17.     TMR1_Init        () ;
    18.     TMR2_Init        () ;
    19.     TMR3_Init        () ;
    20.    
    21.            /* PWM脉冲发生器初始化,产生40KHZ脉冲 */
    22.     /* ADC初始化  */
    23.         ADC_initial();

    24.         /* 开全局中断 结束初始化 */
    25.         sei();

    26.     /*从eeprom中读取数据到内存RAM */
    27.     read_user_data_to_ram();
    28.    
    29.     /* 加载菜单中的设定值        */
    30.     SynRamFromE2prom();
    31.   
    32.         /** 带通信功能则初始化串口*/
    33.     usart_init(9600);
    34.     usart1_init(9600);
    35.     usart_en_recv();
    36.     usart1_en_recv();
    37.    
    38.   /* 频率表初始化 */
    39.           LCD_ini();
    40.         LCD_cls();
    41.         /* 显示电压电流 */
    42.         menu_show_kw(30,1,0);
    43.         menu_show_hz(30,5,0);

    44.     /* 初始化频率测量引脚 */
    45.     KMF600_init_freqpin();
    46.    
    47.     /* 主循环 */
    48.      while(1)
    49.         {
    50.         /* 1- 看门狗 */
    51.         wdt_reset();
    52.         /* 2 - 通信响应,接收命令    */        
    53.         mod_process();  
    54.         mod_process1();
    55.         /* 3-  频率测量显示          */
    56.         KMF600_get_freq();
    57.    
    58.         /* 4-读取模拟量: AIN0 -AIN1  */
    59.         task_sample();

    60.         /* 5 -系统软定时器响应 */
    61.         on_timer();


    62.     }

    63. }
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-24 18:51
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    17

    主题

    565

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2004
    最后登录
    2021-3-10
     楼主| 发表于 2016-8-25 12:53:54 | 显示全部楼层
    XXNZ}@6D2L359AZWTB3Z_%8.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-24 18:51
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    17

    主题

    565

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2004
    最后登录
    2021-3-10
     楼主| 发表于 2016-8-25 12:56:36 | 显示全部楼层
    1. /* 利用P20引脚的下降沿中断 ,进行交流的频率计数 */
    2. void GPIOP2P3P4_IRQHandler(void)
    3. {       
    4. ///////////////////////////////////////////////////
    5. // 1-  利用引脚的边沿触发中断做计数.
    6. ///////////////////////////////////////////////////
    7.     /* To check if P0.3 interrupt occurred */
    8.     if (GPIO_GET_INT_FLAG(P2,BIT0))
    9.     {
    10.         GPIO_CLR_INT_FLAG(P2,BIT0);
    11.          ///跳转到应用程序的移相处理部分
    12.         // 通过顺序执行实现;
    13.     }
    14.     else
    15.     {
    16.         /* Un-expected interrupt. Just clear all PORT0, PORT1 interrupts */
    17.         P2->ISRC = P2->ISRC;
    18.         P3->ISRC = P3->ISRC;
    19.         P4->ISRC = P4->ISRC;
    20.         
    21.         ///不属于同步引脚的中断,直接跳出
    22.         goto exitint;
    23.      }

    24. ///////////////////////////////////////////////////
    25. // 2- 应用程序,进入中断后,处理移相事务
    26. ///////////////////////////////////////////////////

    27.     cli();
    28.     /* 1 - 系统频率测量部分 */
    29.      
    30.      /* 计数法测量频率: 对中断进行计数*/
    31.      if( SYS_pulse_en == true )
    32.      {
    33.         SYS_hz ++;     
    34.      }
    35.     /* 2- 利用上升沿顺便测量电流值看看 */
    36.     //sample_current();
    37.     exitint:
    38.         sei();
    39. }
    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40

    主题

    158

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1236
    最后登录
    1970-1-1
    发表于 2016-8-25 14:02:39 | 显示全部楼层
    赞一个
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-24 18:51
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    17

    主题

    565

    帖子

    0

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2004
    最后登录
    2021-3-10
     楼主| 发表于 2016-8-25 16:35:22 | 显示全部楼层
    感谢老领导支持
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 09:19 , Processed in 0.093207 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表