![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机
文章平均质量分 53
doufuxian
这个作者很懒,什么都没留下…
展开
-
单片机中晶振的作用
单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。-个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,它的一个机器周期是12×(1/12)us,也就是1us. MCS-51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较馒,得要2个机转载 2014-01-01 15:48:32 · 1821 阅读 · 0 评论 -
CAN报文 Intel 格式与Motorola 格式的区别
//////////如有侵权,敬请告知/////////////当一个信号的数据长度不超过 1 个字节(8 位)时,Intel 与 Motorola 两种格式的 编码结果没有什么不同,完全一样。当信号的数据长度超过 1 个字节(8 位)时,两者的编码结果出现 了明显的不同 1. 信号的高位,即最能表达信号特性的因子,比如:车速信号 500km转载 2016-08-23 13:15:08 · 13202 阅读 · 1 评论 -
TI蓝牙BLE 协议栈代码学习——OSAL(上)
TI的蓝牙4.0BLE协议栈为BLE-CC254x-1.4.0,即现在的版本是1.4版本的。可以从TI官方下载或从附件中下载安装,默认是安装在C盘中。因为上一篇博文提到进行空中固件升级,当时没有安装在C盘下,死活生成不了bin文件,改在C盘下生成了。所以,我个人建议,还是默认安装吧,也占不了多大空间。TI蓝牙4.0BLE协议栈的结构如下图所示:由控制器和主机两部分构成,分层转载 2015-09-06 15:54:25 · 4034 阅读 · 1 评论 -
TI蓝牙BLE 协议栈代码学习——OSAL(下)
接下来我们再看main()函数中另一个跟OSAL相关的函数——osal_start_system(),也位于OSAL.c中。void osal_start_system( void ){#if !defined ( ZBIT ) && !defined ( UBIT ) for(;;) // Forever Loop#endif { osal_run_system();转载 2015-09-06 15:58:59 · 2656 阅读 · 1 评论 -
在CodeWarrior中指定堆栈大小及堆栈指针
CodeWarrior自动生成的工程中堆栈指针的初始化机制打开CodeWarrior中的一个新建工程,在Start12.c文件中可以看到语句“INIT_SP_FROM_STARTUP_DESC()”,这是系统自动生成对堆栈指针的初始化语句。这条语句是个宏函数,具体为#define INIT_SP_FROM_STARTUP_DESC() __asm LDS #__SEG_END_SS转载 2015-08-12 15:37:41 · 1499 阅读 · 0 评论 -
9S12汇编指令【HCS12】
#取立即数立即数寻址:LDAA #$66直接寻址 LDAA $55扩展寻址 LDX $4567累加器变址寻址 LDAB A,X ;将X+A作为地址的内存字节加在到累加器B加载指令:LDAA $55;将$0055内存单元的数据加载到累加器A中 LDAB $55;将$0055内存单元的数据加载到累加器B中 LDD #$40转载 2015-08-12 15:26:34 · 4976 阅读 · 0 评论 -
飞思卡尔 HCS12(x) memory map解说之3 .
了解XS128的MEMORY map和core,对充分榨取他的现有资源,合理分配RAM很有帮助。上次讨论到cpu12内核的DG系列单片机,基本上该涉及的东西都有所提及。包括:1 MEMORY map的原因,为什么要搞这个概念出来。2 MEMORY map包含的内容,有那三点...3 一些相关的概念性的东西。如果不明白,看看前面几篇文章就会明白一些的。转载 2015-06-11 16:25:05 · 894 阅读 · 0 评论 -
飞思卡尔 HCS12(x) memory map解说(1) .
对于用MCU的人来说,不一定要明白HCS12(x) memory map的机制和联系。因为如果没有系统地学习操作系统和编译原理之类的课程,确实有些难度。并且,对于DG128 XS128这样的MCU,默认的memory分配方式已经够用了。从这个意义上讲,搞清楚memory map似乎不必要。 但是,你有没有RAM不够用的情况?有没有想定义变量到FLASH ROM的情况?有转载 2015-06-11 16:22:29 · 859 阅读 · 0 评论 -
飞思卡尔 HCS12(x) memory map解说之2 .
接着上次的说吧。首先问一个问题:中断函数为什么要加:#pragma CODE_SEG __NEAR_SEG NON_BANKED 这个声明?这个声明是干什么用的?这要还是要从FLASH分页和非分页的区别说起。 下面详细说一说,FLASH里非分页和分页的使用。 要明白一点,分页是不可见的,要用的时候PPAGE参与寻址。 1转载 2015-06-11 16:23:36 · 1170 阅读 · 0 评论 -
stm32 keil MDK在线调试报错 Error: Flash download failed-"Cortex-M3"
一 目的装好keil MDK 想用 在线调试二 背景: 开发环境 keil MDK 511三 准备: 1 keil MDK 安装文件夹\ARM\Segger里是否有三个动态连接表2 程序编译通过; 3 jlink驱动安装好;四 操作步骤:1、2、转载 2015-01-22 12:21:42 · 5333 阅读 · 0 评论 -
Freescale关于USB BDM MULTILINK调试器使用说明
一、USB BDM MULTILINK图片如下:(说明:正视图为从上往下看,LED灯点亮面为正面,绿灯在左侧,黄灯在右侧)二、相关引脚方向及定义说明如下图:原创 2015-01-20 13:48:27 · 5649 阅读 · 0 评论 -
关于Codewarrior IDE 5.9.0版本中Warning L1016产生原因及解决办法(Freescale--MC9S12G128)
一、产生原因:关于告警L1016产生的原因是在创建新的工程时,需要将原有的工程中的文件加入此次创建的工程中,一种是通过在创建的过程中通过“ADD“操作将位于其他工程中的文件找到并直接点击”ADD“按钮将文件添加入正在创建的工程文件(如图1.1所示),另外一种是在工程创建完成后通过右击工程中左侧操作栏中的文件夹并点击”Add Files...“按钮,在弹出的对话框(如图1.2所示),去待添加的文原创 2015-01-07 20:10:28 · 3615 阅读 · 0 评论 -
codewarrior 警告C12056: SP debug info incorrect because of optimization or inline assembler
一、产生原因:Warning C12056是代码最优化时(common code optimization)堆栈指针不一致造成;二、解决办法:在菜单 -> Edit -> Standard Setting(或快捷键ALT+F7) -> Compiler for HC12 -> Options -> Main Optimize Target对话框选中,然后再选中optimize fo转载 2015-01-08 09:52:35 · 4703 阅读 · 0 评论 -
STM32输入捕获简介
输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32的定时器,除了TIM6和TIM7,其他定时器都有输入捕获功能。STM32的输入捕获,简单的说就是通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存(TIMx_CCRx)里面,完成一次捕获。同时还可以配置捕获时是否触发中断/DMA 等.转载 2014-07-31 20:50:47 · 821 阅读 · 0 评论 -
解读HC08 S08 C语言的头文件
1.对位操作的定义以TSC寄存器的定义为例,在头文件中的定义如下:/*** TSC - TIM Status and Control Register TSC; 0x00000020 ***/typedef union {byte Byte;struct {byte PS0 :1; /* Prescaler Select Bit 0 */byte PS1 :1; /*转载 2014-04-03 16:04:40 · 1416 阅读 · 0 评论 -
asm内联汇编及HC08启动代码说明
AVR GCC has sei() for __enable_interrupts(), and cli() for __disable_interrupts(). Both of these macros are located in .CLI(clear interrupt)是将处理器标志寄存器的中断标志位清0,不允许中断。CLI经常与STI(SEI---set interrupt)成对使原创 2014-04-03 11:20:23 · 1947 阅读 · 0 评论 -
SPI及其时钟配置
今天知道了 SPI 时钟的设置 ,原来SPI 主设备 时钟极性的配置 应该和 从设备SDI的极性相反。怪不得以前做SPI 主设备程序的时候 ,把它设备设成mode 3(此时CPHA=1)就ok,设成mode 0(此时CPHA=0)就ng。因为我们的设备室mode0. 当初还以为 从设备的模式是跟着主设备走的呢!但看了一些材料,发现 这个模式 有些叫法不一致 ,有些不懂。一 .有的叫转载 2014-03-28 16:50:35 · 24270 阅读 · 2 评论 -
单片机位数
单片机位数指CPU处理的数据的宽度,参与运算的寄存器的数据长度? 如果总线宽度与CPU一次处理的数据宽度相同,则这个宽度就是所说的单片机位数。如果总线宽度与CPU一次处理的数据宽度不同:1)总线宽度小于CPU一次处理的数据宽度,则以CPU的数据宽度定义单片机的位数,但称为准多少位。比如著名的Intel 8088,CPU是16位但总线是8位,所以它是准16位。2)总线宽度小于转载 2014-03-04 15:40:58 · 3153 阅读 · 0 评论 -
单片机开发中关键问题点
关于单片机开发,需要咨询FAE的关键问题如下:1,Clock、PLL(最大锁频时间及锁频失败后有无寄存器标志或中断入口)以及WTD的设置和使用; 2,中断的管理及使用,中断向量表的重定向(Bootloader); 3,地址线的位数(8位,16为,32位,64位)及地址范围,地址有无分页及如何寻址,是否区分长短寻址及特殊指令字; 4,RAM\原创 2016-08-12 16:35:27 · 471 阅读 · 0 评论