数据寄存器

单片机成长之路(51基础篇) - 026 基于stm89c52之单片机看门狗

早过忘川 提交于 2019-12-01 17:09:50
基于stc89c52的看门狗,代码如下: main.c 1 #include "stc89c5x_Quick_configuration.h"    // 自定义头文件 2 #include "data.h" 3 #include "bsp_gpio.h" 4 #include "bsp_wdt.h" 5 6 void init_OS_Time(void){ 7 DATA.Time.Time_Interrupt = 1; // 设置步长 8 DATA.Time.Interrupt_count = 0; // 设置单位步数 9 DATA.Time.Time_s = 0; // 时间 s 10 DATA.Time.Time_h = 0; // 时间 h 11 DATA.Time.Time_day = 0; // 时间 日 12 DATA.Time.Time_month = 0; // 时间 月 13 DATA.Time.Time_year = 0; // 时间 年 14 } 15 16 void main(void){ 17 init_OS_Time(); 18 init_WDT(); 19 while(1){ 20 ; 21 } 22 } bsp_wdt.h 1 #ifndef __BSP_WDT_H_ 2 #define __BSP_WDT_H_ 3 4 /*-----------

icm20948

与世无争的帅哥 提交于 2019-12-01 13:49:16
简介: icm20948由两个裸片(die)构成,QFN封装(3x3x1mm 24PIN)。一个die集成3轴陀螺仪,3轴加速计和一个DMP,另一个die集成旭化成的AK09913的3轴磁力计。它支持以下功能: 1.512字节的FIFO(FIFO的大小根据DMP功能集而定) 2.运行时校准功能 3.增强的FSYNC功能,可改善类似EIS(视频防抖)应用的时序 陀螺仪可编程量程范围:±250dps ±500dps ±1000dps ±2000dps 加速计可编程量程范围:±2g ±4g ±8g ±16g 这两个传感器的灵敏度初始化(工厂校准)降低了产线的校准要求。 其他关键功能,片上16位ADC,可编程数字滤波器,内嵌的温度传感器以及可编程中断。设备功能接口有I2C和SPI,VDD操作电压范围1.71V到3.6V以及一个独立的数字IO供电,VDDIO从1.71V到1.95V。 与设备上的寄存器进行通信是通过I2C(高达100KHZ-标准或400KHZ-快速),或者高达7MHZ的SPI。 应用场景: 1.智能手机和平板 2.可穿戴传感器 3.IoT场景 4.无人机 功能: 1.陀螺仪: ① 输出X,Y和Z轴方向的角速度,可编程范围±250dps ±500dps ±1000dps ±2000dps以及集成的16位ADC ② 自定义的ODR;自定义的低通滤波 ③ 自检 ④输出数据率:

芯片翻译之ICM20602(一)

╄→гoц情女王★ 提交于 2019-12-01 13:44:16
高性能六轴MEMS运动跟踪装置 概述 ICM 20602是一个6轴运动跟踪装置,它结合了一个3轴陀螺仪,3轴加速度计,在一个小的3毫米×3毫米×0.75毫米(16引脚LGA)封装。 高性能规格 陀螺仪灵敏度误差:±1% 陀螺仪噪声:4 mdps/√Hz 加速度计噪声:100μg/√Hz 包括1kB FIFO以减少串行总线接口上的通信量,并通过允许系统处理器突发读取传感器数据并进入低功耗模式来降低功耗 支持EIS FSYNC CM-20602包含片上16位ADC、可编程数字滤波器、嵌入式温度传感器和可编程中断。该设备的工作电压范围低至1.71V。通信端口包括I2C和10MHz的高速SPI。 方框图 应用 智能手机和平板电脑 可穿戴传感器 物联网应用 基于运动的游戏控制器 互联网连接DTV和机顶盒、3D鼠标 特性 可编程FSR±250 dps,±500 dps,±1000 dps,±2000 dps的三轴陀螺仪 可编程FSR±2g,±4G,±8g,±16g的三轴加速度计 用户可编程中断 应用处理器低功耗运行的唤醒运动中断 1kB FIFO缓冲区使应用程序处理器能够突发式读取数据 片上16位ADC和可编程滤波器 主机接口:10 MHz SPI或400 kHz快速模式I2C 数字输出温度传感器 VDD工作范围1.71V至3.45V 在晶圆级密封和粘合MEMS结构 符合RoHS和绿色标准

Y86-64指令集体系结构1

╄→尐↘猪︶ㄣ 提交于 2019-12-01 10:06:32
一. 乱糟糟的概念 指令集体系结构(ISA ):一个处理器支持的指令和指令的字节级编码(每条指令被编码成由一个字节序列或多个字节序列组成的二进制格式) 不同的处理器家族有不同的ISA(例如Intel IA32和x86-64、IBM/Freescale Power和ARM处理器家族)有不同的ISA 同一处理器家族的不同处理器有相同的ISA ISA为编译器编写者和处理器设计人员之间提供了一个概念抽象层:编译器编写者只需知道允许哪些指令,指令的字节级编码是什么;而处理器设计者只需建造出执行这些指令对应的二进制编码的处理器。 计算机科学的重要思想:用巧妙的方法在提高性能的同时又保持一个更简单、更抽象模型的功能。 数字硬件设计:基本构件块,如何连接以及操作,硬件控制语言(硬件系统控制部分的简单语言,用它来描述处理器设计) 二. 创建Y86-64指令集 较x86-64处理器支持的指令集而言,Y86-64指令集的 数据类型 、 指令 、 寻址方式 较少。 好处在于: 字节级编码简单,CPU译码逻辑简单 。 可以实现一些处理整数的程序。 在这一章中,我们会学习到如何用这个新定义出来的Y86-64指令集来设计处理器,并自己设计出来一个处理器, CMU设计了一些研究和测试处理器设计的工具,包括:Y86-64的汇编器,以及运行Y86-64程序的模拟器

程序的机器级表示

有些话、适合烂在心里 提交于 2019-12-01 07:28:24
机器级代码 在计算机中最终执行的都是机器代码,汇编代码、C 语言代码和高级语言的代码都需要转换成机器代码来执行。文章涉及的机器语言主要指 Intel IA32。 如下一段 C 语言代码: 1 int accum = 0; 2 3 int sum(int x, int y) 4 { 5 int t = x +y; 6 accum += t; 7 return ; 8 } 通过 gcc -m32 -O1 -o code.o -c code.c 生成二进制格式的目标代码文件 code.o,通过 hexdump 查看文件内容,在计算机中最终执行的字节指令是: 通过 objdump -d code.o 反汇编查看这段二进制对应的汇编内容: 这里的指令 55 对应了汇编代码 push %ebp,汇编代码非常接近于机器代码,它用可读性更好的文本表示处理器执行的指令。 除了像上面那样通过反汇编目标文件查看对应的汇编代码,还可以通过 gcc 查看 C 编译器产生的汇编代码,如下命令会产生一个汇编文件 code.s 。 # -m32 表示用 32 位模式编译 gcc -O1 -m32 -S code.c 数据格式 虽然 C 语言可以在存储器中声明和分配各种数据类型的对象,但是机器代码只是简单地将存储器看成是一个很大的、按字节寻址的数组。C 语言中的聚合数据类型,例如数组和结构

操作系统——内存管理

拥有回忆 提交于 2019-12-01 07:05:18
目录 一、存储器管理 1.1存储器的层次结构 1.2程序的装入和链接 1.2.1程序装入 1.2.2程序链接 1.3交换 1.4连续分配管理方式 1.4.1单一连续分配 1.4.2固定分区分配 1.4.3动态分区分配(含顺序和索引算法) 1.4.4动态可重定位分区分配 1.5非连续分配管理方式 1.5.1分页存储管理方式 1.5.2分段存储管理方式 1.5.3段页式存储管理方式 二、虚拟存储器 2.1基本概念 2.2请求分页存储管理方式 2.2.1请求分页中的硬件支持 2.2.2请求分页中的内存分配 2.2.3页面调入策略 2.3页面置换算法 2.4“抖动”与工作集 一、存储器管理 1.1存储器的层次结构 1、多层结构的存储器系统 1)存储器的多层结构 通用计算机存储层次有三级:CPU寄存器,主存,辅存 主存包括:高速缓存、主存储器、磁盘缓存 辅存包括:固定磁盘、可移动存储介质 寄存器、高速缓存、主存储器和磁盘缓存属于 操作系统存储管理 的管辖范畴,断电后存储信息丢失;固定磁盘、可移动存储介质属于 设备管理 的管辖范畴,存储信息被长期保存 2)可执行存储器 寄存器和主存储器被称为可执行存储器 进程可以在很少的时钟周期内使用 load和 store指令访问可执行存储器,但对辅存的访问需要通过 I/O设备实现,耗费时间远超前者 2、主存储器与寄存器 1)主存储器 简称内存或主存,用于

STM32驱动ILI9341控制器控制TFTLCD显示

让人想犯罪 __ 提交于 2019-12-01 07:01:17
一、用STM32控制TFTLCD显示的编程方法, 在编程驱动TFTLCD液晶显示器之前,我们先熟悉以下概念: 1、色彩深度,这是一个与TFTLCD显存对应的概念;所谓色彩深度就是每个像素点需要多少位的RGB 数据表示该点的颜色信息。注意,不同的TFTLCD显示器的RGB的对应关系不一样,这个可以在LCD 控制芯片手册中找到答案。 例: 某LCD显示支持8、16、24位RGB,这些位数是指该像素点 颜色由 8、16、 24 位RGB构成,但是 R\G\B三种颜色各占的位数可以查看数据手册。 2、TFTLCD的操作分为两种: A、对控制寄存器的读写操作(即程序员将要操作LCD显存寄存器的地址设置成可读或者可写)。 B、对显存寄存器的读写操作(即读写LCD显存寄存器)。 3、TFTLCD有一个索引寄存器,对控制寄存器操作前,需要对索引寄存器进行定入操作,用以指明 寄存器读写是针对那个寄存器的,具体操作步骤如下: RS为低电平状态下,写入两个字节的数据,第一个字节为零,第二个字节为寄存器索引值。 RS为高电平状态下,读取两个字节数据,第一个字节为高八位,第二个字节为低八位。 二、实验平台STM32F103RCT6与ILI9341 TFTLCD驱动模块 硬件采用 16 位的并方式与外部连接,之所以不采用 8 位的方式,是因为彩屏的数据量比较大, 尤其在显示图片的时候,如果用 8 位数据线

数组分配与访问

元气小坏坏 提交于 2019-12-01 06:59:53
数组:将标量数据聚集成更大数据类型 C语言实现数组简单,容易翻译成机器代码 在机器代码中,这些指向数组元素的指针会被翻译成地址计算 优化编译器非常善于 简化数组索引所使用的地址计算 ,这使得我们难以理解C语言代码与机器代码的对应关系 一. 基本原则 一维数组的声明:T A[N](T为数据类型,N为常数) 两个效果:在内存中分配L*N字节的连续区域;引入标识符A,用A来作为指向数组开头的指针,值为x A 数组元素i会存放在x A +i*L的地方 内存引用指令 可以用来 简化数组访问 movl (%rdx, %rcx, 4), %eax 执行地址计算xA+4i,并将结果存放在寄存器%eax中 伸缩因子1, 2, 4, 8覆盖了所有数据类型的大小 知识点回顾 : 内存引用是操作数的一种 操作数 一共有 3 种: 立即数 (书写方式:‘$’后面跟一个用标准C表示法表示的整数,例如$-577,$0x1F)、 寄存器 (书写方式为寄存器的名称ra,实际上操作的是寄存器里的值R[ra],将寄存器集合看成一个数组R,用寄存器标识符作为索引)、 内存引用 (根据 计算出来的地址 Addr访问某个内存位置Mb[Addr],表示对存储在内存中地址Addr开始的b个字节值的引用) 计算地址的方式称为 寻址模式 ,具体形式为:Imm(rb, ri, s) Imm表示一个立即数,rb称为 基址寄存器

ARM体系结构与编程-第六章

别来无恙 提交于 2019-11-30 21:09:04
第六章 ATPCS 介绍 为了使单独编译的C语言和汇编程序之间能够相互调用,必须为子程序间的调用规定一定的规则。ATPCS就是ARM和Thumb程序中子程序调用的基本规则 6.1 ATPCS 概述 基本规则包括子程序调用过程中寄存器的使用规则、数据栈的使用规则、参数的传递规则。根据需要分为 支持数据栈限制检查的ATPCS 支持只读段位制无关(ROPI)的 ATPCS 支持可读写段位置无关(RWPI)的 ATPCS 支持ARM程序和Thumb程序混合使用的ATPCS 处理浮点运算的ATPCS 汇编语言子程序必须满足: 在子程序编写时必须遵守相应的ATPCS规则 数据栈的使用要遵守相应的ATPCS规则 在汇编编译器中使用-atpcs选项 6.2 基本ATPCS 规定了在子程序调用时的一些基本规则,包括: 各寄存器的使用规则及其相应的名称 数据栈的使用规则 参数传递的规则 相对于其他ATPCS,满足基本ATPCS的程序的执行速度更快,所占用的内存更少。但是它不能提供以下的支持: ARM程序和Thumb程序相互调用 数据以及代码的位置无关的支持 子程序的可重入性 数据栈检查支持 6.2.1 寄存器的使用规则 子程序通过寄存器R0~R3来传递参数。 在子程序中,使用寄存器R4~R11来保存局部变量 寄存器R12用作子程序间scratch寄存器,记作ip 寄存器R13用作数据栈指针,记作sp

stm32学习笔记——串口通信

醉酒当歌 提交于 2019-11-30 18:17:18
stm32 学习笔记——串口通信 目的:利用串口收发数据 配置文件: #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" 寄存器: USART_SR :状态寄存器,第 5 位 RXNE ,收到数据可以读出时置 1 ,第 6 位 TC , 发送完成时置 1 ,第 7 位 TXE ,数据移至移位寄存器置 1 。 USART_DR :数据寄存器,高 23 位保留,低 9 位接收数据,分为发送寄存器 TDR , 和接受寄存器 RDR UASRT_BRR :波特率寄存器,高 16 位保留, 0-3 位波特率整数部分, 4-15 位波特 率小数部分。 USART_CR1 :控制寄存器,第 2 位 RE 接收使能,第 3 位 TE 发送使能,第 9 位 PS ,奇偶校验位,奇校验置 1 ,第 10 位 PCE ,校验控制使能,位 12 字长位,一个 起始位, 8 个数据位,一个停止位置 1 , n 个停止位置 0 。位 13UEUSART 使能。 结构体定义: USART 寄存器结构体 typedef struct { __IO uint16_t SR; uint16_t RESERVED0; __IO uint16_t DR; uint16_t RESERVED1; __IO