蓝宙陀螺仪
1、程序串口波特率是115200
2、C15脚作为输入引脚。C15脚接低电平时输出陀螺仪信号,C15脚接高电平,输出加速度信号。
- /******************** (C) COPYRIGHT 2011 蓝宙电子工作室 ********************
- * 文件名 :main.c
- * 描述 :工程模版实验
- *
- * 实验平台 :landzo电子开发版
- * 库版本 :
- * 嵌入系统 :
- **********************************************************************************/
- #include "include.h"
- #include "calculation.h"
- /*************************
- 设置系统的全局变量
- *************************/
- /*******************
- 外部时钟变量
- *******************/
- extern u8 TIME0flag_1ms ; //PT0口1ms定时标志位
- extern u8 TIME0flag_5ms ; //PT0口5ms定时标志位
- extern u8 TIME0flag_10ms ; //PT0口10ms定时标志位
- extern u8 TIME0flag_20ms ; //PT0口20ms定时标志位
- extern u8 TIME1flag_1s ; //PT1口1s定时标志位
- extern u8 IntegrationTime ; //曝光时间
- /********
- 按键
- ********/
- u8 keyflg = 0 ;
- u16 ASPeed0 ,ASPeed1 ,ASPeed2;
- u16 ASPeed3 ,ASPeed4 ,ASPeed5 ;
- /********
- 全局
- ********/
- u8 Atep8B0 ;
- /*********
- 角度传感器
- *********/
- u8 AInitC ;
- u16 AAngleAcceleArry[6] ;
- u8 AAngAcceCount ;
- u16 AAngleArrySCI[6] ;
- u8 ReCRC ;
- u8 RFlag ;
- /*********
- *********/
- void main()
- {
- DisableInterrupts; //禁止总中断
-
- /*********************************************************
- 初始化程序
- *********************************************************/
- //自行添加代码
- /***************************
- 变量初始化
- *****************************/
- /*********************************************************
- 初始化全局变量
- *********************************************************/
- RFlag = 0 ;
-
- /***************************
- 寄存器初始化初始化
- *****************************/
- uart_init (UART0 , 115200); //初始化UART0,输出脚PTA15,输入脚PTA14,串口频率 9600
- // LCD_KEY_init ( ) ;
- AngleAcceleration_init() ;
- gpio_init (PORTA , 17, GPO,HIGH);
- gpio_init (PORTC , 15, GPI,LOW); //C15脚拉低,角速度示波器输出,C15脚拉高,加速度示波器输出。
- pit_init_ms(PIT0, 1); //初始化PIT0,定时时间为: 1ms
- pit_init_ms(PIT1, 100); //初始化PIT1,定时时间为: 100ms
- PTC15_IN = 0 ;
- EnableInterrupts; //开总中断
-
-
-
-
- /******************************************
- 执行程序
- ******************************************/
- while(1)
- {
- /*********************
- 1ms程序执行代码段
- *********************/
- if(TIME0flag_10ms == 1)
- {
- TIME0flag_10ms = 0 ;
- AAngAcceCount = AngleAcceleration_AD(AAngleAcceleArry,AAngAcceCount) ; //采集传感器AD
- for(AInitC = 0 ;AInitC < 6;AInitC++){
- AAngleArrySCI[AInitC] = AAngleAcceleArry[AInitC]/1 ;
- }
- AAngAcceCount = 0 ;
-
- if(PTC15_IN == 0 ){
- for(AInitC = 0 ;AInitC < 3;AInitC++)
- {
- uart_putchar (UART0, AAngleArrySCI[AInitC]) ;
- uart_putchar (UART0, 0x00) ;
- }
- uart_putchar (UART0, 0x00) ;
- uart_putchar (UART0, 0x00) ;
- ReCRC = (u8)AAngleArrySCI[0] +(u8)AAngleArrySCI[1] + (u8)AAngleArrySCI[2] ;
- uart_putchar (UART0, ReCRC) ;
-
- }else if(PTC15_IN == 1) {
- for(AInitC = 3 ;AInitC < 6;AInitC++)
- {
- uart_putchar (UART0, AAngleArrySCI[AInitC]) ;
- uart_putchar (UART0, 0x00) ;
- }
- uart_putchar (UART0, 0x00) ;
- uart_putchar (UART0, 0x00) ;
- ReCRC = (u8)AAngleArrySCI[3] +(u8)AAngleArrySCI[4] + (u8)AAngleArrySCI[5] ;
- uart_putchar (UART0, ReCRC) ;
-
- }
-
-
-
- }
-
- /*********************
- 5ms程序执行代码段
- *********************/
- if(TIME0flag_5ms == 1)
- {
- TIME0flag_5ms = 0 ;
-
- }
-
- /*********************
- 10ms程序执行代码段
- *********************/
- if(TIME0flag_10ms == 1)
- {
- TIME0flag_10ms = 0 ;
-
- PTB17_OUT = ~PTB17_OUT ;
- // uart_putchar (UART0, 0xaa) ;
-
- }
-
- /*********************
- 20ms程序执行代码段
- *********************/
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
landzoCCDk60_V1.1模拟陀螺仪.zip
(3.21 MB, 下载次数: 10)
|