找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2946|回复: 1
收起左侧

蓝宙K60模拟陀螺仪源码

[复制链接]
ID:287806 发表于 2018-4-21 18:10 | 显示全部楼层 |阅读模式
蓝宙陀螺仪
1、程序串口波特率是115200
2、C15脚作为输入引脚。C15脚接低电平时输出陀螺仪信号,C15脚接高电平,输出加速度信号。


  1. /******************** (C) COPYRIGHT 2011 蓝宙电子工作室 ********************
  2. * 文件名       :main.c
  3. * 描述         :工程模版实验
  4. *
  5. * 实验平台     :landzo电子开发版
  6. * 库版本       :
  7. * 嵌入系统     :

  8. **********************************************************************************/

  9. #include "include.h"
  10. #include "calculation.h"



  11. /*************************
  12. 设置系统的全局变量
  13. *************************/
  14. /*******************
  15. 外部时钟变量
  16. *******************/
  17. extern u8 TIME0flag_1ms  ;  //PT0口1ms定时标志位
  18. extern u8 TIME0flag_5ms  ;  //PT0口5ms定时标志位
  19. extern u8 TIME0flag_10ms ;  //PT0口10ms定时标志位
  20. extern u8 TIME0flag_20ms ;  //PT0口20ms定时标志位
  21. extern u8 TIME1flag_1s   ;  //PT1口1s定时标志位


  22. extern u8 IntegrationTime ;             //曝光时间
  23. /********
  24. 按键
  25. ********/
  26. u8 keyflg = 0 ;
  27. u16 ASPeed0 ,ASPeed1 ,ASPeed2;
  28. u16 ASPeed3 ,ASPeed4 ,ASPeed5 ;

  29. /********
  30. 全局
  31. ********/
  32. u8 Atep8B0 ;
  33. /*********
  34. 角度传感器
  35. *********/


  36. u8  AInitC ;
  37. u16 AAngleAcceleArry[6] ;
  38. u8  AAngAcceCount ;
  39. u16 AAngleArrySCI[6] ;
  40. u8  ReCRC ;
  41. u8  RFlag ;



  42. /*********
  43. *********/
  44. void main()
  45. {
  46.       DisableInterrupts;                             //禁止总中断
  47.    
  48.   /*********************************************************
  49.   初始化程序
  50.   *********************************************************/
  51.    //自行添加代码
  52.    /***************************
  53.   变量初始化
  54.   *****************************/
  55.   /*********************************************************
  56.   初始化全局变量
  57.   *********************************************************/
  58.    RFlag = 0 ;


  59.    /***************************
  60.   寄存器初始化初始化
  61.   *****************************/     
  62.    uart_init (UART0 , 115200);                      //初始化UART0,输出脚PTA15,输入脚PTA14,串口频率 9600

  63. //  LCD_KEY_init ( ) ;
  64.    AngleAcceleration_init() ;

  65.    gpio_init (PORTA , 17, GPO,HIGH);
  66.    gpio_init (PORTC , 15, GPI,LOW);                         //C15脚拉低,角速度示波器输出,C15脚拉高,加速度示波器输出。
  67.    pit_init_ms(PIT0, 1);                                    //初始化PIT0,定时时间为: 1ms
  68.    pit_init_ms(PIT1, 100);                                    //初始化PIT1,定时时间为: 100ms
  69.    PTC15_IN = 0 ;
  70.    EnableInterrupts;                                            //开总中断  
  71.    

  72.    
  73.    
  74.    
  75.    /******************************************
  76.     执行程序
  77.     ******************************************/
  78.     while(1)
  79.     {

  80.       /*********************
  81.       1ms程序执行代码段
  82.       *********************/
  83.        if(TIME0flag_10ms == 1)
  84.       {
  85.          TIME0flag_10ms = 0 ;                  
  86.          AAngAcceCount = AngleAcceleration_AD(AAngleAcceleArry,AAngAcceCount) ;   //采集传感器AD
  87.          for(AInitC = 0 ;AInitC < 6;AInitC++){
  88.            AAngleArrySCI[AInitC] = AAngleAcceleArry[AInitC]/1 ;
  89.          }
  90.          AAngAcceCount = 0 ;
  91.          
  92.          if(PTC15_IN == 0 ){
  93.            for(AInitC = 0 ;AInitC < 3;AInitC++)
  94.            {
  95.              uart_putchar (UART0, AAngleArrySCI[AInitC]) ;
  96.              uart_putchar (UART0, 0x00) ;
  97.            }
  98.              uart_putchar (UART0, 0x00) ;
  99.              uart_putchar (UART0, 0x00) ;
  100.              ReCRC =  (u8)AAngleArrySCI[0] +(u8)AAngleArrySCI[1] + (u8)AAngleArrySCI[2] ;
  101.              uart_putchar (UART0, ReCRC) ;
  102.          
  103.          }else if(PTC15_IN == 1) {
  104.             for(AInitC = 3 ;AInitC < 6;AInitC++)
  105.            {
  106.              uart_putchar (UART0, AAngleArrySCI[AInitC]) ;
  107.              uart_putchar (UART0, 0x00) ;
  108.            }
  109.              uart_putchar (UART0, 0x00) ;
  110.              uart_putchar (UART0, 0x00) ;
  111.              ReCRC =  (u8)AAngleArrySCI[3] +(u8)AAngleArrySCI[4] + (u8)AAngleArrySCI[5]  ;
  112.              uart_putchar (UART0, ReCRC) ;
  113.            
  114.          }
  115.          
  116.             
  117.             
  118.       }
  119.       
  120.       /*********************
  121.       5ms程序执行代码段
  122.       *********************/
  123.       if(TIME0flag_5ms == 1)
  124.       {
  125.         TIME0flag_5ms = 0 ;
  126.         
  127.       }
  128.       
  129.       /*********************
  130.       10ms程序执行代码段
  131.       *********************/
  132.       if(TIME0flag_10ms == 1)
  133.       {
  134.         TIME0flag_10ms = 0 ;
  135.          
  136.           PTB17_OUT = ~PTB17_OUT ;
  137.        //    uart_putchar (UART0, 0xaa) ;
  138.         
  139.       }
  140.          
  141.       /*********************
  142.       20ms程序执行代码段
  143.       *********************/
  144. ……………………

  145. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
landzoCCDk60_V1.1模拟陀螺仪.zip (3.21 MB, 下载次数: 10)
回复

使用道具 举报

ID:335302 发表于 2018-11-20 20:47 | 显示全部楼层
没定义引脚啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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